你能告訴我如何使用控制器的主頁,因爲我試圖把一個模型的數據home.ctp(主頁視圖)與 <?php $this->user->find() ?>
但它返回製作的主頁控制器
通知(8):未定義的屬性: 查看:: $用戶[APP \意見\網頁\ home.ctp, 線1]
你能告訴我如何使用控制器的主頁,因爲我試圖把一個模型的數據home.ctp(主頁視圖)與 <?php $this->user->find() ?>
但它返回製作的主頁控制器
通知(8):未定義的屬性: 查看:: $用戶[APP \意見\網頁\ home.ctp, 線1]
你應該看看食譜;它有一些固體CakePHP的教程,在http://book.cakephp.org/
你還沒有真正提供了很多的信息,但我的猜測是你的控制器uses
模型「用戶」,而你把$this->user->find()
在你看來,當它應該是在你的控制器中。在你的控制器的動作,您想/需要做這樣的事情...
Users_Controller extends AppController {
function index() {
$arrayOfUsers = $this->User->find(...);
$this->set('users', $arrayOfUsers);
}
}
然後,您可以 - 在您的視圖 - 訪問「用戶」,像這樣:
pre($users);
...因爲您使用控制器方法set()
將變量$users
發送到視圖。
您真正需要做的是創建一個新的控制器如果是這樣的你想去的方向。如果這是您需要訪問數據的唯一聲明,則可能僅需使用PagesController
的這種方法進行僞造。例如,我的其中一個項目的主頁是99%靜態存儲的特色事件列表。而不是移動所有的東西到一個新的控制器,甚至裝載我Event
樣板全PagesController
(它是沒有必要的),我只是在PagesController::home()
應用本方案:
$attractions = ClassRegistry::init ('Attraction')->featured (10);
的偉大工程。如果你的頁面比我的頁面更具動態性,那麼很有必要通過一個不同的控制器(與正在顯示的數據更密切相關的頁面)來路由你的主頁。
主頁(即home.ctp視圖)的默認控制器位於/cake/libs/controller/pages_controller.php。通過將應用程序的控制器目錄放置爲/app/controllers/pages_controller.php,可以覆蓋此控制器。然後,你可以修改該控制器認爲合適的,即使用模型,注入要在主頁中使用的變量等。
這應該是UsersController(沒有下劃線),並且調試功能是pr()不是pre() – duckyflip 2010-01-18 13:49:36
哈哈,你是我的壞人當我在沒有Cake的PHP中工作時,我總是定義我自己調用的pr版本,因爲我喜歡函數名至少有一個元音:) – 2010-01-18 15:21:50