@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 в вид и вывести его в нужной форме.
@edyth
Дополнение: если вы хотите вывести посты текущего пользователя, то вышеуказанный метод будет работать. Однако, если вам нужно вывести посты другого пользователя, то вам нужно передать id этого пользователя в метод getPosts():
1 2 |
$userId = 1; // id пользователя, чьи посты вы хотите вывести $userPosts = User::findOne($userId)->getPosts()->all(); |
Где 1 - это id пользователя, чьи посты вы хотите вывести. После этого можно передать массив $userPosts в вид и вывести его в нужной форме.