laravel разбиение на страницы запроса с предложением limit - PullRequest
0 голосов
/ 10 февраля 2020

У вас есть база данных 10000 клиентов. Вы хотите ограничить свой поиск только 500 из этих клиентов, но хотите разбить результаты на 50 страниц на каждой странице. Таким образом, последняя страница, страница 10, будет иметь 50 результатов. Там не было бы страницы 11.

Возможно ли это с eloquent / laravel? Что-то вроде «выбрать * из списка людей по полю des c limit 500» и затем выполнить разбиение на страницы для этих результатов?

Кажется, что Paginate использует -> take () и -> offset (), которые игнорируют - > предел (). Я хотел бы иметь возможность использовать все три.

Ответы [ 3 ]

1 голос
/ 11 февраля 2020

Попробуйте LengthAwarePaginator, ссылка на похожую проблему: https://laracasts.com/discuss/channels/laravel/how-to-use-lengthawarepaginator-manual-paginator

1 голос
/ 20 февраля 2020

С подзапросом

        $events = DB::table(function ($query) {
            $query->selectRaw('*')
                ->from('system_events_collected')
                ->orderBy('event_at','desc')
                ->take(500);
        })->paginate(10);

в этом случае данные, которые я хочу разбить на страницы, находятся в таблице с именем system_events_collected. Подзапрос получает первые 500 строк из этой таблицы, затем выполняется разбиение на страницы результатов.

0 голосов
/ 10 февраля 2020

Попробуйте:

Article::where([['user_id','=',auth()->user()->id]])
            ->where([['title','LIKE',"%".$text_val."%"]])
            ->orderBy('id','DESC')
            ->get();

Или используйте «DB»

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