由於客戶希望擁有違反Cake邏輯的URL,我決定使用從cake/libs複製的pages_controller.php來組織我的應用。 該網站的大部分功能都發生在一個使用ajax調用不同控制器的url上,因此我選擇了Pages作爲主頁。模型導入到控制器後,cakePHP模型關聯丟失
頁面沒有模型,但我仍然需要訪問一些相關模型,以便導入它們。
我已經嘗試了所有三種方法:
$this->loadModel('Inventories');
----
$Inventories =& ClassRegistry::init('Inventories');
----
App::import('Controller', 'Inventories');
$Inventories = new InventoriesController;
存貨模型似乎負荷罰款與各可是當我找到一些記錄:
$(...)->find("all", array(
'conditions' => array('id' => '1'),
'recursive'=>2)
);
我只得到結果,如果遞歸已經設置爲-1或好像沒有關聯的模型。 無論我設置什麼遞歸,都會發生這種情況。 當我在另一個控制器中加載模型時,我得到了適當的遞歸響應。
任何想法如何我可以從pages_controller.php完全訪問模型?
是,使用$使用的是正確的方式。這是推薦的方式,不是不好的做法!雖然創建使用gadzillion模型和組件的胖控制器是一個不好的做法。每個控制者應該有一個明確的目標,一個明確的和短的行動,沒有什麼會失去控制。 – sibidiba
@Sibidiba - 如果您閱讀OP對問題的描述,他會使用Pages控制器明確地爲其路由器顯示客戶希望的任何url,這意味着他將其用作訪問衆多模型的超級控制器。在Cake中這是一個棘手的情況,儘管$使用起來並且至少現在會解決他的問題,請參閱http://book.cakephp.org/view/961/components-helpers-and-uses。 – OpenSorceress