亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1625 | 回復: 0
打印 上一主題 下一主題

Yii技術之 -- 總結(jié)和技巧一 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-12-20 09:48 |只看該作者 |倒序瀏覽
yii視圖中使用的widget方式總結(jié):
常用的有3種方式:
一、顯示詳細信息:
<?php
$this->widget('zii.widgets.CDetailView', array(
    'data' => $model,
    'attributes' => array(
        'id',
        'title',
        'content',
    ),
);
?>

二、顯示列表,可以進行條件限制和分頁:
控制器:
$dataProvider = new CActiveDataProvider('Post', array(
    'criteria' => array(
            'condition' => 'project_id = :project_id',
            'params' => array(':project_id' => $pid),
        ),
    'pagination' => array(
        'pageSize' => '5',
    ),
));
視圖:
<?php
    $this->widget('zii.widgets.CListView',array(
        'dataProvider' => $dataProvider, //數(shù)據(jù)源
        'itemView' => '_view', //渲染子視圖,傳給模板的值用$data接收。
        ),
    );
?>
子視圖:
<div class="view">
    <b><?php echo CHtml::encode($data->getAttributeLabel('id')); ?>:</b>//$data接收來自父視圖的數(shù)據(jù),使用getAttributeLabel()獲取模型中設置的標簽
    <?php echo CHtml::link(CHtml::encode($data->id), array('view', 'id'=>$data->id)); ?>//使用$data->attribute獲取值。
    <br />
</div>

三、顯示列表,但是結(jié)果會在表格中顯示
$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$dataProvider, //數(shù)據(jù)源
    'columns'=>array(
        'title',          // display the 'title' attribute
        'category.name',  // display the 'name' attribute of the 'category' relation //顯示與category相關的name
        'content:html',   // display the 'content' attribute as purified HTML 顯示凈化過的HTML格式
        array(            // display 'create_time' using an expression
            'name'=>'create_time',
            'value'=>'date("M j, Y", $data->create_time)',
        ),
        array(            // display 'author.username' using an expression
            'name'=>'authorName',
            'value'=>'$data->author->username',
        ),
        array(            // display a column with "view", "update" and "delete" buttons
            'class'=>'CButtonColumn',
        ),
    ),
    'filter'=>$model,//對用戶的輸入進行過濾
));


Yii中l(wèi)oadModel的使用:$this->loadModel($modelId);
一般在R/U/D操作中,會loadModel($modelId),這是因為此時,讀,更新和刪除時,已經(jīng)通過GET方式獲取到了model的id值,只需要將對應id的model加載進來,就可以了。
但是在C(建立),不需要loadModel,而是需要新建一個初始化的model。
使用$_POST['Model']的值分別填充model的attribute后,就可以save()了。

Yii中不同控制器使用同一個模板:
在Yii的CRUD操作中,C和U使用的是同一個子視圖。區(qū)別在于:
C操作中,所有的input的值都是空,新建的model也是初始化狀態(tài),并準備接收來自POST的值。
在U操作中,所有input的值需要通過loadModel($id)的方式填充,然后準備接收來自POST的更新的值(有的
值并沒有被用戶修改);
然后,根據(jù)$model->isNewRecord()來判斷提交按鈕顯示C還是U操作。
最后使用$model->save();將記錄存儲。

Yii中渲染視圖的方式:
使用$this->render()和$this->renderPartial()渲染視圖;
前者一般渲染一個整體視圖,在整體視圖中可能會用后者渲染需要重復渲染的部分。
例如在indexAction中一般會顯示記錄列表,由于所有記錄的渲染方式一致,此時會使用子
視圖來分別渲染相同的部分。而index視圖只是渲染一個大的結(jié)果,比如導航面包碎屑,記錄的條數(shù)和
分頁等。

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP