2012-02-09 9 views
1

Yiiで関連するテーブルを取得しようとしていて、event.textフィールドを参照しようとしてエラーが発生し続けます。 「イベント」関係を通じてInvitationCodeに関連しているYiiのActiveRecordで関連テーブルを参照できません

return new CActiveDataProvider('InvitationCode', array(
    'criteria'=>array(
    'select' => array('t.id', 'code', 'Event.text'), 
    'condition'=>'t.id >= :min_code_id AND t.id <= :max_code_id', 
    'order'=>'t.id Asc', 
    'with' => array('Event'), 
    'params' => array(
      ':min_code_id' => $min_code_id, 
      ':max_code_id' => $max_code_id, 
     ),     
    ),  
)); 

テーブル・イベントは、テキストフィールドを持っているが、場合、私は「event.text」や「Event.text」
のいずれかでそれにアクセスすることはできません私は '選択'の部分を残して、それだけでInvitationCodeのfiledsと関連するテーブルイベントのフィールドのいずれかを持ってそれにもかかわらず、 'の部分です。

関連するテーブルイベントはどのように参照できますか?

+0

ちょうど推測すると、条件に ''together' => true'を使用するとどうなりますか? –

答えて

0

正確なエラーメッセージは何ですか? InvitationCodeモデルクラスにrelation()を定義するコードを投稿できますか? 正確なクエリが生成されたことを確認するためにクエリログを有効にしましたか?

コメントに記載されているように、eager loadingの場合は、=> trueを明示的に設定する必要があります。

から:http://www.yiiframework.com/doc/guide/1.1/en/database.arr

一緒:この関係に関連付けられたテーブルが 主テーブルと他のテーブルと一緒に参加することを強制されるべきかどうか。 このオプションは、HAS_MANYおよびMANY_MANYリレーションに対してのみ意味があります。 このオプションをfalseに設定すると、HAS_MANYまたは MANY_MANYリレーションに関連付けられたテーブルは、別の SQLクエリでプライマリテーブルと結合され、 重複データが返されないため、クエリ全体のパフォーマンスが向上する可能性があります。このオプションをtrueに設定すると、 に関連付けられたテーブルは、プライマリテーブルがページされていても、単一のSQLクエリ のプライマリテーブルと常に結合されます。この オプションが設定されていない場合、プライマリテーブルが のページ番号が付けられていない場合にのみ、関連付けられたテーブルが プライマリテーブルと単一のSQLクエリで結合されます。詳細は、「リレーショナルクエリ のパフォーマンス」を参照してください。

関連する問題