2012-05-13 16 views
0

私は無駄にモデルクエリを実行するためにCakePHP 2を使ってみます。 コード:PHPCakePHPカスケード条件の問題:find( 'all')

アン「オファー」テーブル(オファーが一つの「場所」に属している) A「場所」の表(A「場所」は、多くのオファーを持っている)(場所が属する私は3つのテーブルを持っています "City"テーブル( "City"には "Place"が多い)

特定の "City" trouhgからすべての "オファー"を得るための正しい構文を見つけることはできません「条件」パラメータ。

ここで私は何を試しましたか?コード:私は広報を使用して、正しいデータを見ることができるので問題はモデル関係(「hasOneの」等「blongsTo」)ではありません

$this->set('offers', $this->Offer->find('all', array(
    'conditions' => array('Place.City.name' => 'MyCity'), 
    'recursive' => 3))); 

()。

ご存知ですか?オファーがFOREIGNKEYが含まれているので、

答えて

0

ご提供モデルbelongsToの場所、したがって、あなたの状態は次のようになります。

array('Offer.place_id' => $placeid) 

またはそのような何か。 place_idはもちろんあなたが使っているforeignKeyです。

編集:おっと、すぐにお読みください。あなたは場所の代わりに街が必要です。私はあなたがこれについては、モデルをバインドする必要があると思う:詳細についてはhttp://mark-story.com/posts/view/using-bindmodel-to-get-to-deep-relationsを参照してください。

+0

ありがとう、私はあなたにお返しをしようとします。 – croustibapt

+0

それは働いた。どうもありがとう。 CakePHP 2.0を使用する場合は、$ this-> unbindModelの代わりに$ this-> MyModel-> unbindModelを呼び出すことを忘れないでください – croustibapt