0

私は理解できないわずかな問題を抱えていますが、本当に単純なはずです。
私のcakePHP(1.3)アプリには、次のモデル構造があります。

ProspectiveQuote [hasMany] QuoteUnit [belongsTo] Unit

しかし、私のProspectiveQuotesControllerでは、次の行があります。

$this->ProspectiveQuote->QuoteUnit->Unit->find('list');

次のエラーが発生します。

Undefined property: AppModel::$Unit

もちろん、AppModelを見るのではなく、QuoteUnitを見る必要があります。
私が$this->ProspectiveQuote->QuoteUnit->find('all')そうすると、結果が得られるようです(関連するモデルデータはありませんが...)ので、QuoteUnitは明らかに十分に検出され、Unitとの関係を再確認しましたが、すべて問題ないようです...

単純な問題のようです。この問題を抱えている人々は通常、モデル名が間違っている(または複数形である)ことがわかりますが、ここではそうではありません...
何が間違っている可能性がありますか?

4

2 に答える 2

2

モデルの関連付けの構文を再確認して、それらが正しいことを確認してください。または、それらをバックアップし、新しいモデルを焼き付けてテストし、期待どおりであることを確認します。

もう 1 つのすばらしい点は、DebugKit http://www.ohloh.net/p/cakephp-debugkitを取得することです。これは、変数と SQL クエリを確認するのに役立ちます。

Leo のコメントで述べたように、私はuses()それが示すように回避しようとするか、スタックに 1.2 の大きなオーバーヘッドを少し入れました。

于 2010-07-13T08:56:51.783 に答える
0

コントローラーに設定var $uses = array('ProspectiveQuote','QuoteUnit','Unit');しましたか?(これを行うにはもう少し効率的な方法があります) - http://book.cakephp.org/2.0/en/controllers.html#controller-attributesを参照してください

これを行うと、次のような関連付けられたモデルにアクセスできます。

$this->Unit->find('list');

また

$this->ProspectiveQuote->QuoteUnit->Unit->find('list');

私はどちらが好きかを知っています。

于 2010-07-13T08:37:49.637 に答える