无法在Yii的ActiveRecord中引用相关表

时间:2012-02-09 02:16:51

标签: yii

我正在尝试在Yii中获取一个相关的表,它一直在尝试引用event.text字段时给出错误。

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'与InvitationCode相关的表事件确实有一个文本字段,但我无法使用'event.text'或'Event.text'访问它 如果我将'select'部分保留下来,它只会带来InvitationCode的文件,而不会带来相关表Event中的任何字段,尽管它位于'with'部分。

如何引用相关的表事件?

1 个答案:

答案 0 :(得分:0)

确切的错误讯息是什么? 你可以在InvitationCode模型类中发布定义relations()的代码吗? 您是否启用了查询日志记录以查看生成的确切查询?

正如评论中指出的那样,您可能必须明确地将=&gt; true设置为真正的加载。

来自:http://www.yiiframework.com/doc/guide/1.1/en/database.arr

  

一起:与此关系关联的表是否应该   被迫与主表和其他表连接在一起。   此选项仅对HAS_MANY和MANY_MANY关系有意义。   如果此选项设置为false,则表示与HAS_MANY或   MANY_MANY关系将与主表一起单独连接   SQL查询,这可以提高整体查询性能,因为更少   返回重复的数据。如果此选项设置为true,则   关联表将始终与a中的主表连接   单个SQL查询,即使主表是分页的。如果这   如果未设置选项,则关联的表将与   仅当主表不是时,单个SQL查询中的主表   分页。有关更多详细信息,请参阅“关系查询”一节   性能”。