Испытание «неизвестного столбца» после N на каждого родителя в hasMany () твик - PullRequest
0 голосов
/ 20 мая 2019

В настоящее время я пытаюсь настроить этот параметр, чтобы получить N сообщений для каждого отношения, например, 5 комментариев для каждого сообщения вместо 5 комментариев от общего количества сообщений (проблема).

Предоставлен параметр здесь и упоминается во многих ответах на SO.

Моя модель довольно проста.Я скопировал BaseModel и определил пространство имен для него.После этого я включил твик в отношение вот так:

public function replies()
{
    return $this->hasMany(DismaUserComment::class, 'parent_comment_id', "id")}
                ->where("visible", 1)
                ->orderBy("created_at", "ASC");
}

public function repliesLimited()
{
    return $this->replies()->latest()->nPerGroup('reply_comment_id', 5);
}

В контроллере я звоню with('repliesLimited').Исключение, которое я получаю:

Столбец не найден: 1054 Неизвестный столбец '(выберите app_users_comments. , @rank: = IF (@group = reply_comment_id, @ rank +1, 1) 'в' списке полей '(SQL: выберите (select ``app_users_comments```., @rank: = IF (@group = reply_comment_id, @ rank + 1, 1) as rank_807a5773f971e6e6a9db9e1d6ef4f63a, @group: = reply_comment_id , (select count(*) from app_users_comments_votes * тысяча двадцать-один * app_users_comments * тысяча двадцать-дв * ID = app_users_comments_votes . comment_id ) as votes_count * тысяча двадцать-шесть * app_users_comments_votes where app_users_comments * тысяча двадцать-восемь * ID * тысяча двадцать-девять * app_users_comments_votes . comment_id and vote_type = 1) asupvotes_count , (select count(*) from app_users_comments_votes where app_users_comments . ID = app_users_comments_votes . comment_id and vote_type = 0) as downvotes_count from (select app_users_comments .*, @rank := IF(@group = reply_comment_id, @rank+1, 1) as rank_807a5773f971e6e6a9db9e1d6ef4f63a, @group := reply_comment_id as group_807a5773f971e6e6a9db9e1d6ef4f63a from (SELECT @rank:=0, @group:=0) as vars, app_users_comments where виден = 1 and app_users_comments . deleted_at is null order by reply_comment_id asc, created_at asc, created_at desc) as app_users_comments where rank_807a5773f971e6e6a9db9e1d6ef4f63a <= 5 and app_users_comments * * 1 049 parent_comment_id in (1, 12, 13) and app_users_comments . Deleted_at` is null) "

Желаемый результат:

Получите 5 сообщений (уже сделано) для каждого сообщения, должно быть 2 комментария.

Основной способ состоит в том, чтобы ограничить отношение, но при этом будет возвращено только 2 комментария всего отношения комментариев вместо 2 комментариев на сообщение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...