PHP,Yii部門表的設計

來源:互聯網
上載者:User

標籤: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。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.