cakephp劄記——view層

來源:互聯網
上載者:User
cakephp筆記——view層

一個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

  1. echo $this->renderElement('helpbox'); ?>

調用一個element,並傳入包含資料的數組

  1. echo
  2. $this->renderElement('helpbox', array(
  3. "helptext" => "Oh, this text is very helpful.")
  4. );
  5. ?>

在element檔案裡,所有傳入的變數都可以通過他們在參數數組裡的鍵名來使用(有點類似於在view裡邊使用controller用set()設定的變數)。在上邊這個例子中,/app/views/elements/helpbox.ctp檔案可以使用$helptext變數。當然,如果傳遞一個數組給element會包含更多的資訊。element使view具有更佳的可讀性,而把render重複的element的部分放在對應的element檔案中。當然它們也可以協助你重用網站中的內容區塊。


  • 聯繫我們

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

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

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.