Yii Lazy Loading通过表/模型获取值

时间:2012-12-14 21:14:33

标签: php activerecord yii yii-cmodel

在Yii中,我设置了一个使用直通选项的关系。

public function relations()
    {
        return array(
            'users_relationships' => array(
                self::HAS_MANY, 'EnvironmentUsers', 'environment_id', 'together'=>true 
            ),
            'users' => array(
                self::HAS_MANY, 'Users', array('user_id' => 'user_id'), 'through' => 'users_relationships', 'together'=>true 
            ),

        );
    }

我可以像访问它一样:

 foreach($model -> users as $value):
    $model-> user_id;
    endforeach;  

当我想访问Users模型中的值时,哪个工作正常。但是当我尝试访问EnvironmentUsers模型中的值时,它会抛出无法找到的通知值。

foreach($model -> users as $value):
    $model-> is_environemnt_administrator;
    endforeach;

我的问题是,如果在Yii中进行延迟录制,我怎样才能访问直通表中的值?

1 个答案:

答案 0 :(得分:1)

在你的第二个循环中你应该调用好的相关模型! 您似乎在调用users而不是users_relationships

foreach($model->users_relationships as $value):
    $model-> is_environemnt_administrator;
    endforeach;