首页 > 代码库 > PHP,Yii部门表的设计

PHP,Yii部门表的设计

PHP语言中Yii框架中部门表的设计:

功能:可以添加总部门和子部门,总部门下面可以添加多个子部门,总部门和子部门都可以进行增删改查。

本来打算设计成多对多类型的数据库表,但是显得很麻烦,原来网上有很多部门表的例子,下面讲下Yii框架中部门表的设计:

1.首先是数据库中的Department部门表,如下:

1   id    Department_name    parent_id2   1     总部门              null3   2     生产部              14   3     设计部              15   4     质检部              26   5     车间部              27   6     美工部              38   7     本地化部            3

PS:parent_id就是所属部门的上级部门,例如质检部的parent_id=2,即质检部的上级部门是生产部。

2.生成Department的Module,Model,Crud,Controller。

3.…………/Department/Department/create.php的创建

1 //create.php,chang The style of Parent_id from textField To dropDownList.
2.<?php echo $form->lableEx($model,‘parent_id‘); ?>
3.<?php echo $form->dropDownList($model,‘parent_id‘,array(0=>‘--选择--‘)+Parent::items()); ?>
4.<?php echo $form->error($model,‘parent_id‘);?>

4.在Department.php添加items()方法:

 1 public static function items(){ 2             $models = self::model()->findAll(); 3             if($models ==null){ 4                     $return = null; 5                 }else{ 6                     foreach($models as $v){ 7                         $return[$v->id]=$v->name; 8                         } 9                 }10                         return $return ;11             }

以上即可添加新部门了,而上级部门是从数据库读取的部门下拉项。

5.…………/Department/Department/admin.php的上级部门仍然显示是parent_id,修改为Department_name

1 //将‘parent_id‘修改为如下:
2    array(3 ‘name‘=>‘parent_id‘,4 ‘value‘=>‘$data->parent_id==0?"--":Partment::model()->findByPk($data->parent_id)->name‘,5 ‘type‘=>‘raw‘,6 ‘htmlOptions‘=>array(‘style‘=>‘text-align:center;‘,‘width‘=>150)7 ),

6.OKay,It is down。