Как в yii2 вывести посты принадлежащие пользователю?

Пользователь

от edyth , в категории: PHP , год назад

Как в yii2 вывести посты принадлежащие пользователю?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от ransom_homenick , год назад

@edyth 

Для этого нужно использовать связь между моделями User и Post, например, связь "один ко многим". В модели User нужно добавить метод getPosts(), в котором будет объявлена связь с моделью Post:

1
2
3
4
public function getPosts()
{
    return $this->hasMany(Post::className(), ['user_id' => 'id']);
}


где 'user_id' - это внешний ключ, связывающий таблицы User и Post, 'id' - это ссылка на атрибут id модели User.


Затем в контроллере нужно получить все посты, принадлежащие текущему пользователю:

1
$currentUserPosts = Yii::$app->user->identity->getPosts()->all();


где Yii::$app->user->identity - это объект текущего авторизованного пользователя, а метод getPosts() вернет все его посты в виде массива.


Далее можно передать массив $currentUserPosts в вид и вывести его в нужной форме.