我想鏈接CakePHP應用程序中的兩個(和更多)模型。爲什麼我的模型不能鏈接?
我有兩個數據庫表:clients
和notes
。我有以下的模型類:
<?php
class Client extends AppModel {
var $name = 'Client';
var $hasMany = 'Note';
}
和:
<?php
class Note extends AppModel {
var $name = 'Note';
var $belongsTo = 'Client';
}
不過,我不認爲他們的鏈接。當我運行在控制器我得到以下輸出print_r($this->Client->find());
:
Array
(
[Client] => Array
(
[id] => 1
[name] => Martin Bean
)
)
如何我也獲取相關Note
記錄每個Client
?
編輯:儘管已經在我的模型類上面,如果我放置在控制器以下:
$this->Client->Behaviors->attach('Containable');
print_r($this->Client->find('all', array('contain' => 'Note')));
我收到以下錯誤信息:
警告(512) :Model「Client」與模型「Note」沒有關聯[CORE/cake/libs/model/behaviors/containable.php,line 363]
我錯過了CakePHP食譜中沒有解釋的東西嗎?
編輯2:我不知道這是否有幫助;它的調試輸出:
ContainableBehavior ::安全殼() - CORE /蛋糕/庫/模型/行爲/ containable.php,線363 ContainableBehavior :: beforeFind() - CORE /蛋糕/庫/ model/behaviors/containable.php,line 121 ModelBehavior :: dispatchMethod() - CORE/cake/libs/model/model_behavior.php,line 169 BehaviorCollection :: trigger() - CORE/cake/libs/model/model_behavior.php,line 494 Model :: find() - CORE/cake/libs/model/model.php,line 2108 PostsController :: index() - APP/controllers/posts_controller.php,line 6 Dispatcher :: _ invoke () - CORE /餅/ dispatcher.php,線204分派器::調度() - CORE /餅/ dispatcher.php,線171 [主要] - APP /根目錄/ index.php的, 線83
嘗試清除模型緩存以及'APP/tmp/cache/models' - 特別是如果您在初始創建並運行這些文件後添加了這些更改。有時它只需要〜 – Ross
還要檢查你的(app_)模型是否存在任何'$ this->遞歸的蹤跡 - 如果它小於0,你將不會得到相關數據。 – Ross