cakephp筆記——view層

來源:互聯網
上載者:User
一個view是一個頁面模版,通常按action的名字命名。例如,PostsController::add的view位於/app/views/posts/add.ctp。Cake view是非常簡單的PHP檔案,因此你可以在其中使用任何PHP代碼。     Layouts 布局 一個layout(布局)包含了所有包裹在view之外的表現代碼。Layout檔案都放在/app/views/layouts目錄裡。你可以重寫一個預設的layout來取代位於/app/views/layouts/default.ctp的Cake預設layout。一但建立了新的預設layout,當頁面render的時候controller view的內容會被替換到預設layout中。只要需要,你可以隨意為你的Cake網站建立任意數量的layout,只要把他們放在app/views/layouts目錄,並且在你的controller action裡邊使用controller的$layout變數或者setLayout()方法來切換layout。   Elements 元素  element元素的產生主要是為了代碼或者是代碼塊的重用。許多應用程式都會有一些在各個頁面見不停重複的表現層代碼,有時他們只是在layout裡的不同地方。Cake可以協助你複製網站中的某些區塊,如果需要的話。 我們將這些可重用的頁面區塊稱為Element(元素)。廣告,協助框,導覽列,菜單和插圖都被Cake實現成為element。一個element其實可以看作是可以包含在其他view裡邊的mini-view。所有element都生活在/app/views/elements目錄下,並且副檔名為.ctp。 預設情況下,element訪問不到任何資料。想讓它具有對資料的訪問權,你需要將資料放在數組裡傳遞給它,並不要忘了為這些資料帶上名字(鍵-值對數組)。 無參數地調用一個element <?php echo $this->renderElement('helpbox'); ?>  調用一個element,並傳入包含資料的數組 <?php echo  $this->renderElement('helpbox', array("helptext" => "Oh, this text is very helpful."));   ?>  在element檔案裡,所有傳入的變數都可以通過他們在參數數組裡的鍵名來使用(有點類似於在view裡邊使用controller用set()設定的變數)。在上邊這個例子中,/app/views/elements/helpbox.ctp檔案可以使用$helptext變數。當然,如果傳遞一個數組給element會包含更多的資訊。element使view具有更佳的可讀性,而把render重複的element的部分放在對應的element檔案中。當然它們也可以協助你重用網站中的內容區塊。 

相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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