yii框架預設渲染模板的時候會渲染布局,新建立的專案也包含了3個預設的布局:main.php column1.php column2.php,並且預設建立了乙個公共控制器 controller.php(在components目錄下),預設的sitecontroller.php是繼承的這個controller.php,這個控制器指定了布局檔案為column1.php。
讓我們看看渲染乙個模板需要經過哪些步驟:
1.控制器中通過 $this->render('index'); 來開始渲染index.php視**件
2.在渲染index時,首先將index.php中的php指令碼解析完畢,然後將解析的結果儲存到$content變數裡
3.系統檢查是否指定布局檔案,先找控制器的$this->layout 屬性,如果這個值不為空的話,則再render()渲染這個布局檔案,將$content值作為布局檔案中的變數,也就是在布局檔案中使用<?php echo $content;?>即可輸出index.php裡解析好的內容,而這個layout在controller中預設指定為了column1.php,在這個布局裡,又巢狀了專案預設的布局檔案main.php.
4 .如果控制器沒有指定layout屬性,則會去找專案配置中的layout屬性,也就是main.php中的layout屬性,而這個屬性不需要人工指定,預設就是views/layouts/main.php檔案。通過render解析這個布局檔案,將index.php的內容作為$content變數穿進去。
也就是說,按照預設情況,我們渲染乙個檢視需要渲染3個檔案,分別是 index.php column1.php main.php 。
對於不習慣布局模式的人來說,這無疑增加了麻煩。
YII 利用Clip構建layout
yii為我們提供了layout,我們可以把乙個view嵌入設計好的layout。但隨著 設計越來越多變,越來越複雜,只是layout內乙個 content 變數在載入view似乎並不能滿足我們的需求。如果頁面中有好幾個地方需要時時變動呢?沒關係,yii還為我們提供了clip這個方法 begincon...
Yii學習筆記
1 執行環境檢測,yii提供了檢測工具 requirements index.php 2 使用yiic生成應用程式 下面的樹圖描述了我們這個應用的目錄結構。請檢視約定以獲取該結構的詳細解釋。testdrive index.php web 應用入口指令碼檔案 index test.php 功能測試使用...
Yii學習筆記(入門)
use yii db activerecord class a extends activerecord hello,i am only page.1 初始化應用 訪問http localhost basic web index.php,進入yii的啟動頁面。如果提示你未安裝openssl的話,去你...