PHP,Yii部门表的设计

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

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

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

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

1   id    Department_name    parent_id
2   1     总部门              null
3   2     生产部              1
4   3     设计部              1
5   4     质检部              2
6   5     车间部              2
7   6     美工部              3
8   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。

 

PHP,Yii部门表的设计,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。