2010-06-16 39 views
2

我剛剛完成了cakephp文檔中包含的「15分鐘博客文章教程」。我被要求另一個教程來改變第一個教程的佈局。如何在cakephp中使用default.ctp

但是,我相當新的MVC編程/ CakePHP和我沒有真正的線索如何做到這一點。那麼,我知道我需要將「default.ctp」放在app/views/layouts /中,並且我認爲我需要包含 以包含我的數據? 。 。 。

我真的不知所措。我如上所述設置了我的default.ctp,但是當我到localhost:9999/posts時,佈局仍然是一樣的。我想我需要包括一個樣式表(如果是的話,在哪裏?)

我想如果有人可以指向我的正確方向初學者指南佈局樣式或如何使用它,我將不勝感激任何幫助。

+1

你的問題得到了Cake的一些非常非常基本的基礎。你的佈局主要用於結構; $ content_for_layout是隨視圖內容設置的變量,然後放置在佈局中。從蛋糕庫中插入你的默認佈局(如果你沒有創建);一旦你添加一個到views/layouts/default.ctp,那一個將被使用,而不是默認的庫佈局。如果你在爲這些東西苦苦掙扎,你真的需要更多地閱讀這本書。 – 2010-06-16 15:39:32

+0

請選擇一個答案來回答你的問題! – RedDragon 2011-04-05 21:45:42

回答

0

我真的推薦CakePHP CookBook,它很容易從CakePHP主頁找到。修改default.ctp應該編輯你的應用程序佈局。

更具體的問題(例如,default.ctp的代碼示例,預期結果等)可能會幫助人們提供比我更好的答案。

+0

啊,是的,我很抱歉。那麼我認爲你熟悉15分鐘的博客文章教程。我被要求完成上述教程,併爲上述教程創建類別,這爲我留下了localhost:9999/posts以及localhost:9999/categories(全部使用它們自己的控制器,視圖等)。在食譜中,我發現他們在討論如何通過向default.ctp添加<?php echo $ content_for_layout?>來使用佈局結構。但是,它似乎沒有改變任何東西..你知道如何添加樣式嗎? – 2010-06-16 14:30:32

+0

您將需要編輯默認的CSS文件。在'webroot'目錄裏面,至少我認爲這是我最後一次使用CakePHP(相當長一段時間)... – thomasfedb 2010-06-16 16:04:06

1

缺少樣式表在這裏沒有影響。

如何MVC工作在CakePHP中:

  • 路由器調度傳入的請求到合適的控制器上。

  • 執行相應的控制器功能(無輸出,僅提取數據,設置變量)。

  • 呈現適當的視圖。實際上,視圖的輸出只包含在$ content_for_layout中。

  • 你真正在瀏覽器中得到的是佈局。因此,您可以通過default.ctp中的echo $content_for_layout將視圖的輸出放入佈局中。 (當然你也可以有不同的佈局。)另外,佈局可以通過元素進行增強。

+0

謝謝你們。我很快就開始工作了。事實證明,Coda被設置爲隱藏擴展名,所以當我將該文件保存爲default.ctp時,它自動嘗試將其保存爲default.ctp.ctp(我以前曾遇到此問題,並且Coda喜歡重置這對我)。 @ Travis Leleu,謝謝!是的,我一直在經常重讀這本書。我感謝我可能會轉而使用另一個編輯器來爲我的cakephp用法,以避免將來出現這些問題。 – 2010-06-17 04:03:02

+0

嘗試Eclipse PDT http://bakery.cakephp.org/articles/view/setting-up-eclipse-to-work-with-cake – bancer 2010-06-17 09:20:32

2

我會建議你閱讀從食譜如下:LayoutsCSS。然後將版面從/cake/libs/view/layouts/複製到/app/views/layouts/並根據需要進行修改。之後,在/app/webroot/css/中創建樣式表(或修改現有的樣式表)並將其包含在您的佈局中。

2
  1. 創建應用程序/視圖/佈局一個名爲 「my_posts_layout.ctp

  2. 在你PostController中設置$這個 - >佈局文件= 'my_posts_layout';

這樣您應該查看在my_posts_layout.ctp上定義的內容。

+1

CakePHP 2.6.0,將此行放到特定方法的末尾(在控制器類中):'$ this-> render('my_posts_layout');' – 2015-01-02 23:30:42