使用BELONGS_TO与用户表的关系

时间:2014-09-16 11:12:01

标签: php yii

我正在尝试将comment表加入我的user表,如comment.userId=user.id

不幸的是,当我print_r($this->user);我一无所获。我在这做错了什么?

在我的评论模型中

    public function relations()
    {
        return array(
            'user' => array(self::BELONGS_TO, $this->module->user, 'userId'),
        );
    }

   public function getLastName()
    {
        print_r($this->user);
        die;
        return is_null($this->user) ? '' : $this->user->{$this->module->lastNameAttribute};
    }

,其中

$this->module->user = 'User'; //User is the model name

$this->module->lastNameAttribute = 'last_name'; 

在我看来

$comments = $model->getCommentDataProvider();

$comments->setPagination(false);

$this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$comments,
    'itemView'=>'application.modules.comment.views.comment._view', //view file location
    'emptyText' => '<div class="alert alert-info">No comments yet.</div>',
    'summaryText' => '<h4>'.Yii::t('commentTitle','{n} comment|{n} comments',$comments->totalItemCount).'</h4>'
));

1 个答案:

答案 0 :(得分:0)

我看到一个小错字,也许你在发帖时错了:

comment.userid=user.id

这里userid与您userId

相关联的$comments = Yii::createComponent($this->module->commentModelClass)->with('user')->findAll($this->getCommentCriteria());

请查看

编辑 - 问题编辑后

我不熟悉CommentableBehavior,但在我看来,您需要在每个评论中急切加载用户模型:

with('user')

我在getComments()方法

中添加了{{1}}