標籤:style blog color io 資料 for ar art
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。