我搜索了很多,但是我找不到如何在視圖中使用find('all')用於Rails,但在這裏我得到錯誤「未定義的屬性:視圖:: $菜單[APP \ Lib \ Cake \ View \ View.php,第804行]」 「菜單」是我用來從菜單表中獲取數據的模型。如何在視圖中使用find('all') - CakePHP
我用在欣賞下面的代碼:
$this->set('test',$this->Menu->find('all'));
print_r($test);
我搜索了很多,但是我找不到如何在視圖中使用find('all')用於Rails,但在這裏我得到錯誤「未定義的屬性:視圖:: $菜單[APP \ Lib \ Cake \ View \ View.php,第804行]」 「菜單」是我用來從菜單表中獲取數據的模型。如何在視圖中使用find('all') - CakePHP
我用在欣賞下面的代碼:
$this->set('test',$this->Menu->find('all'));
print_r($test);
在AppHelper,
撥打以下功能
function getMenu()
{
App::import('Model', 'Menu');
$this->Menu= &new Menu();
$test = array();
$test = $this->Menu->find('all');
return $test;
}
使用上述功能鑑於這樣的:
<?php
$menu = $html->getMenu();
print_r($menu);
?>
我再次收到錯誤: 致命錯誤:調用AppHelper.php中的非對象的成員函數find()。 我AppHelper.php增加了$這個 - > loadmodel(「菜單」),但我發現了錯誤loadmodel是非對象。 – 2012-04-12 06:47:51
請檢查我的更新回答 – chetanspeed511987 2012-04-12 07:29:47
我投了一個,因爲你給不好的建議,並建議違反MVC。 – burzum 2012-04-12 10:01:16
嘗試在視圖文件中不檢索數據。 MVC規則
違反嘗試有鑑於此文件:
$menu = ClassRegistry::init('Menu');
pr($menu->find('all'));
使用此代碼視圖(ctp)文件不在控制器 – thecodeparadox 2012-04-12 07:02:39
沒有違反MVC規則,如何做到這一點functionallity? – chetanspeed511987 2012-04-12 08:39:21
在控制器中查詢,然後設置查看。或者在AppController的beforeFilter函數中進行查詢,將結果存儲在一個變量中,然後使用該變量。 – thecodeparadox 2012-04-12 10:56:07
內,您的菜單模式創建一個方法,像使用getMenu()。用這種方法做你的find()並得到你想要的結果。根據需要修改結果並喜歡在getMenu()方法中返回數據。
如果您需要在AppController中:: beforeFilter()或beforeRender()的每個頁面上的菜單根本就
$this->set('menu', ClassRegistry::init('Menu')->getMenu());
如果你不需要它無處不在,你可能會去使用requestAction使用獲取數據好這個方法來自Menus控制器,它將從模型中調用getMenu()並返回數據。把它設置在你需要的地方會更好,如果你使用requestAction,你也想緩存它。
非常感謝@burzum,你的工作! – 2012-04-12 11:17:20
如果它適合您,請您介意將答案標記爲正確嗎? – burzum 2012-04-12 13:35:21
@burzum:我投了那個,因爲你給了正確的建議,並建議我 – chetanspeed511987 2012-04-13 03:25:31
Cakephp不允許這樣做。
首先使用ClassRegistry :: init('Model')創建模型的引用(對象); 然後從使用對象調用查找函數
$obj = ClassRegistry::init('Menu');
$ test = $ obj-> find('all');
echo「」;的print_r($測試); `
這將工作。
檢索視圖內的日期違反了MVC規則。請不要這樣做。 – thecodeparadox 2012-04-12 06:48:09
我知道,但要解決我的問題,我只知道這種方式,如果有任何其他方式幫助。 我必須顯示一個表中的所有菜單,我有另一個表中的menu_id,我需要將id轉換爲菜單名稱。 – 2012-04-12 06:56:36
我認爲我的文章將解決您的問題 – thecodeparadox 2012-04-12 06:58:01