Yii入門指導(四):強大的「小物件」

1,修改默認的控制器php

Yii的默認應用:程序員

全部的配置均可以在main.php中進行配置,那麼修改默認的控制器就是在main.php中增長以下代碼:
數據庫

'defaultController' => '', //修改默認控制器框架

Yii模塊:admin模塊爲例this

每一個Yii的模塊,都會在protected/modules目錄下具備單獨的文件夾,例如:admin,而後在對應的模塊文件夾下存在對應的模塊文件,如:AdminModule.phpspa

那麼對於模塊的修改它的模塊控制器則須要在AdminModule.php中進行以下定義:orm

$this->defaultController = 'index';//修改模塊的默認控制器對象

2,模塊的配置文件get

Yii的核心思想是儘量去重複利用現有代碼it

對於模塊中的配置文件,若是你沒有指定,那麼Yii會找到整個Yii系統共用的配置文件也就是main.php

可是大部分狀況下模塊中的配置項和整個應用的配置項多少會有一點區別,那麼這個時候就須要在模塊中去單獨的配置這個區別項,因此Yii也想到了這個需求而且也容許你這麼作

AdminModule.php中的代碼結構以下圖:

其中的「init」方法是在模塊執行初始化的時候執行的,那麼咱們對模塊的配置項也是在這裏進行的

想單獨的設置模塊的配置文件,則須要在「init」方法中作以下的設置:

這個時候,可能你們發現,咱們是經過Yii中的全局對象來改變Yii中的行爲的,固然也可使用它來獲取Yii中的相關配置項,不是嗎!

3,Yii中的「小物件」

Yii中的View層,採用的模板是原生的PHP代碼和HTML混排的方式,這種方式使得View層少去了「解析」的步驟,使得系統的速度有所增長,可是也增長View層代碼的編寫難度,不過這種難度是相對而言的,一般狀況下全部的程序員都可以接受這種方式。

Yii在View層採用這種方式,使得Yii在View層的功能比其它的框架更增強大,其中突出的特色就是它的「小物件

使用Yii的「小物件」能夠在視圖層方便的建立直接和數據模型關聯的表單,也能夠方便的建立咱們經常使用的驗證碼而無需傳值,也能夠方便的實現數據分頁,固然也能夠方便的供咱們自定義小物件來實現其它的功能。

4,「小物件」之表單初探

想要使用Yii的表單,則首先須要自頂一個一個模型,那在Yii中關於模型有兩類,一種是數據不須要保存,用完以後能夠直接丟棄的叫:表單模型---CFormModel

另一種模型則是須要對收集到的數據進行數據庫插入的,數據是不會被丟棄的叫:CActiveRecord

那這裏咱們先是簡單的認識表單,並不須要數據,則咱們直接創建表單模型便可,

在protected/modules/admin/models文件夾下新建:Article.php,其中代碼以下:

而後在控制器中須要將咱們的數據模型傳遞到視圖中以便視圖可使用「小物件」來建立表單,控制器代碼以下:

此時,咱們即可以在視圖中來使用小物件建立表單了:

首先,咱們使用「小物件」必需要調用「beginWidget」方法,而後指定建立小物件的類,而後根據須要肯定是否須要調用「endWidget」方法,例如表單有開始標籤還有結束標籤則須要調用,可是對於建立驗證碼img標籤則不須要調用

而後咱們調用「小物件」的實例「$form」來調用「CActiveForm」類中的方法來建立相應的表單,這裏咱們以建立一個「文本輸入框」爲例,其它表單的建立方式同樣,須要去查看「CActiveForm」類中相應的方法,直接使用便可。

那麼使用「CActiveForm」類中的方法類建立表單時,調用的方法須要傳遞「三個參數」

第一個參數:「數據模型對象」,也就是咱們從控制器中傳遞過來的數據模型的實例

第二個參數:「表單name屬性值」,這裏的值必需要和數據庫中的字段值一致,若是數據庫中沒有該值,則須要在數據模型中聲明,方法以下圖:在Article模型中

那麼最終,生成的表單的樣式以下:

網頁源代碼以下:



下一節繼續:Yii會員註冊功能實現(CActiveRecord類型模型建立、Yii數據庫操做

相關文章
相關標籤/搜索