связь с использованием BELONGS_TO с пользовательской таблицей

Я пытаюсь присоединиться 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>'
));

0

Решение

Я вижу небольшую опечатку, возможно, вы ошибаетесь, делая сообщение:

comment.userid=user.id

вот это userid и в отношении вы ссылались на это с userId

проверьте это пожалуйста

РЕДАКТИРОВАТЬ — после редактирования вопроса

Я не знаком с CommentableBehavior, но мне кажется, что вам нужно активно загружать модель пользователя с каждым комментарием:

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

я добавил with('user') в getComments() метод

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]