OrderBy столбец отношений - PullRequest
0 голосов
/ 10 апреля 2019

Я столкнулся с проблемой здесь.У меня 3 таблицы сообщений, тем и комментариев.Тема содержит комментарии и прикреплена к сообщению.Таким образом, существует связь между постом и темами и связь между темами и комментариями.Что мне нужно, так это сортировать посты по последним, где, если у поста есть ветка с комментариями, тогда используйте комментарий create_at, если к посту нет прикрепленной ветки, используйте пост, созданный на.так что я вроде нужен порядок, если существует thread.comments.created_at еще post.created_at

это возможно?

1 Ответ

0 голосов
/ 10 апреля 2019

Мне удалось сделать это вот так

$posts = Post::leftJoin('threads', function($join) {
                $join->on('posts.id', '=', 'threads.post_id');
            })
            ->leftJoin('messages', function($join) {
                $join->on('threads.id', '=', 'messages.thread_id')
                    ->where('messages.id', '=', DB::raw('(select max(messages.id) from messages)'));

            })
            ->orderByRaw('coalesce(messages.created_at, posts.created_at) DESC')
            ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...