Я создаю приложение для социальных сетей, в котором фид пользователя генерируется с помощью функции hasManyThrough
для аутентифицированного пользователя, например: Auth::user()->feed
.Вызываемая функция выглядит следующим образом:
public function feed() {
$posts = $this->hasManyThrough(
'App\Post',
'App\Follow',
'follow_by',
'user_id',
'id',
'target_id'
)->with('user', 'likes', 'comments')
->orderBy('id', 'DESC');
return $posts;
}
Это сделано, поскольку я хочу проверить, за какими пользователями следует аутентифицированный пользователь, а затем найти сообщения этих людей.Однако я также хочу включить в запрос сообщения аутентифицированного пользователя.Ранее я делал это отдельно через $selfPosts = Post::where('user_id', Auth::user()->id)->with('user', 'likes', 'comments')->get();
, а затем объединял запросы, используя $posts = $selfPosts->merge($followPosts)->sortByDesc('id');
.
. Много проблем с объединением запросов, например, что я не могу использовать лимит или смещение.У меня вопрос: как включить сообщение аутентифицированного пользователя в функцию feed
?