私はCakePHPアプリケーションで2つ(以上)のモデルをリンクしようとしています。私のモデルがリンクされていないのはなぜですか?
私は2つのデータベーステーブル:clients
とnotes
を持っています。しかし、私は彼らがリンクしているとは思わない
<?php
class Note extends AppModel {
var $name = 'Note';
var $belongsTo = 'Client';
}
:
<?php
class Client extends AppModel {
var $name = 'Client';
var $hasMany = 'Note';
}
そして:私は、次のモデルクラスを持っています。私は、コントローラでprint_r($this->Client->find());
を実行すると、私は次のような出力が得られます。
Array
(
[Client] => Array
(
[id] => 1
[name] => Martin Bean
)
)
は、どのように私はまた、各Client
のために関連したNote
レコードを取得することができますか?
EDIT:私のモデルクラスで上記にもかかわらず、私はコントローラに次のように配置する場合:
警告(512):
$this->Client->Behaviors->attach('Containable'); print_r($this->Client->find('all', array('contain' => 'Note')));
私は、次のエラーメッセージが表示されますモデル "クライアント"はモデル "ノート"に関連付けられていません[CORE/cake/libs/model/behaviors/containable.php、行363]
私はCakePHPの料理本で説明されていない何かを忘れましたか?
EDIT 2:これは助けになるかどうかわかりません。それはデバッグ出力です:
ContainableBehavior ::格納容器() - CORE /ケーキ/ libsに/モデル/行動/ containable.php、ライン363 ContainableBehavior :: beforeFind() - CORE /ケーキ/ libsに/ CORE/cake/libs/model/behaviors.php、line 121 モデルビヘイビア:: dispatchMethod( )CORE/cake/libs/model/model_behavior.php、行169 BehaviorCollection :: trigger() - CORE/cake/libs/model/Model_behavior.php、494行目Model :: find() - CORE/cake/libs/model/model.php、行2108 PostsController :: index() - APP/controllers/posts_controller.php、行6 Dispatcher :: _ invoke () - CORE /ケーキ/ dispatcher.php、ライン204ディスパッチャ::ディスパッチ() - CORE /ケーキ/ dispatcher.php、ライン171 [メイン] - APP /ウェブルート/ index.phpを、 ライン83
モデルキャッシュを 'APP/tmp/cache/models'と一緒に消去してみてください。特に、これらのファイルを最初に作成して実行した後に追加した方がいいでしょう。時にはそれはすべてです〜 – Ross
また、 '$ this-> recursive'のトレースについて(app_)モデルをチェックしてください。0より小さい場合、関連するデータは取得されません。 – Ross