yii widget使用的3個用法

yii視圖中使用的widget方式總結:
經常使用的有3種方式:
1、顯示詳細信息:javascript

Java代碼   收藏代碼
  1. $this->widget('zii.widgets.CDetailView', array(  
  2.     'data' => $model,  
  3.     'attributes' => array(  
  4.         'id',  
  5.         'title',  
  6.         'content',  
  7.     ),  
  8. );  

 
2、顯示列表,能夠進行條件限制和分頁:
控制器:html

Java代碼   收藏代碼
  1. $dataProvider = new CActiveDataProvider('Post', array(  
  2.     'criteria' => array(  
  3.             'condition' => 'project_id = :project_id',  
  4.             'params' => array(':project_id' => $pid),  
  5.         ),  
  6.     'pagination' => array(  
  7.         'pageSize' => '5',  
  8.     ),  
  9. ));  

 
視圖:java

Java代碼   收藏代碼
  1. $this->widget('zii.widgets.CListView',array(  
  2.     'dataProvider' => $dataProvider, //數據源  
  3.     'itemView' => '_view', //渲染子視圖,傳給模板的值用$data接收。  
  4.     ),  
  5. );  


子視圖:express


     getAttributeLabel('id')); ?>://$data接收來自父視圖的數據,使用getAttributeLabel()獲取模型中設置的標籤
    id), array('view', 'id'=>$data->id)); ?>//使用$data->attribute獲取值。
    

3、顯示列表,可是結果會在表格中顯示app

Java代碼   收藏代碼
  1. $this->widget('zii.widgets.grid.CGridView', array(  
  2.     'dataProvider'=>$dataProvider, //數據源  
  3.     'columns'=>array(  
  4.         'title',          // display the 'title' attribute  
  5.         'category.name',  // display the 'name' attribute of the 'category' relation //顯示與category相關的name  
  6.         'content:html',   // display the 'content' attribute as purified HTML 顯示淨化過的HTML格式  
  7.         array(            // display 'create_time' using an expression  
  8.             'name'=>'create_time',  
  9.             'value'=>'date("M j, Y", $data->create_time)',  
  10.         ),  
  11.         array(            // display 'author.username' using an expression  
  12.             'name'=>'authorName',  
  13.             'value'=>'$data->author->username',  
  14.         ),  
  15.         array(            // display a column with "view", "update" and "delete" buttons  
  16.             'class'=>'CButtonColumn',  
  17.         ),  
  18.     ),  
  19.     'filter'=>$model,//對用戶的輸入進行過濾  
  20. ));  

 

Yii中loadModel的使用:$this->loadModel($modelId);
通常在R/U/D操做中,會loadModel($modelId),這是由於此時,讀,更新和刪除時,已經經過GET方式獲取到了model的id值,只須要將對應id的model加載進來,就能夠了。
可是在C(創建),不須要loadModel,而是須要新建一個初始化的model。
使用$_POST['Model']的值分別填充model的attribute後,就能夠save()了。

Yii中不一樣控制器使用同一個模板:
在Yii的CRUD操做中,C和U使用的是同一個子視圖。區別在於:
C操做中,全部的input的值都是空,新建的model也是初始化狀態,並準備接收來自POST的值。
在U操做中,全部input的值須要經過loadModel($id)的方式填充,而後準備接收來自POST的更新的值(有的
值並無被用戶修改);
而後,根據$model->isNewRecord()來判斷提交按鈕顯示C仍是U操做。
最後使用$model->save();將記錄存儲。

Yii中渲染視圖的方式:
使用$this->render()和$this->renderPartial()渲染視圖;
前者通常渲染一個總體視圖,在總體視圖中可能會用後者渲染須要重複渲染的部分。
例如在indexAction中通常會顯示記錄列表,因爲全部記錄的渲染方式一致,此時會使用子
視圖來分別渲染相同的部分。而index視圖只是渲染一個大的結果,好比導航麪包碎屑,記錄的條數和
分頁等。yii

From:http://zhouyujiao163.blog.163.com/blog/static/48363054201161464156603/ide

相關文章
相關標籤/搜索