У меня есть таблица Posts
и Comments
, где у каждого сообщения может быть несколько комментариев.
Я хочу сделать запрос, который получит все сообщения, а также все комментарии зарегистрированных пользователей.
Вот что у меня есть до сих пор:
$posts = Post::select('posts.*')
->with(['comments' => function($query) {
if (Auth::check()) {
$query->where('user_id', Auth::user()->id);
}
}])
->get();
И мой класс модели Post.php
выглядит так:
class Post extends Model
{
public function comments()
{
return $this->hasMany('App\Comment');
}
}
Запрос возвращает правильные результаты, когда пользователь входит в систему.
Но когда пользователь не вошел в систему, он возвращает комментарии ВСЕХ пользователей вместо того, чтобы ничего не возвращать (поскольку пользователь вошел в систему и, следовательно, у него нет комментариев).
Как я могу это исправить?