2012-02-09 21 views
1

我試圖在Yii中獲取相關表格,並且它不斷嘗試引用event.text字段給我一個錯誤。無法引用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, 
     ),     
    ),  
)); 

這是通過關係「事件」給InvitationCode相關的表事件確實有一個文本字段,但我不能以「event.text」也不是「Event.text」
如果訪問我將「select」部分留出,儘管它位於'with'部分,但它只會將InvitationCode的文件和相關表格事件中的所有字段都不帶入。

我該如何參考相關的表事件?

+0

只是猜測,如果你還在標準中使用''together'=> true'? – 2012-02-09 03:47:11

回答

0

什麼是確切的錯誤信息? 您可以在InvitationCode模型類中發佈定義關係()的代碼嗎? 您是否啓用查詢日誌查看生成的確切查詢?

正如註釋所述,您可能必須顯式設置=> 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查詢中與 主表格連接。有關更多詳細信息,請參見「關係查詢 性能」一節。