Laravel Eloquent: таблица запросов, выборка X количество строк в указанный c день (и допускается разбиение на страницы) - PullRequest
0 голосов
/ 28 февраля 2020

Представьте, что у нас есть стол tasks_complete. Он содержит тысячи строк с данными за последние два года.

В этой таблице есть столбец с именем task_complete_date.

Мы хотим получить 25 с каждой даты, а затем применить нумерацию страниц.

Таким образом, мы должны получить полный список дат, но только 25 строк каждой даты и стандартный вывод нумерации страниц.

Я смотрел на подзапросы и присоединяется слева , но, к сожалению, не может заставить это работать.

Basi c Пример кода в порядке, я могу go оттуда

Спасибо

Ответы [ 2 ]

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

То, чего вы хотите достичь, невозможно только с одним красноречивым запросом и нумерацией страниц по умолчанию.

Оформление заказа ниже кода, с которого нужно начать:

$taskCompleteDates = TaskComplete::groupBy('task_complete_date')->pluck('task_complete_date');
$taskDates = array();
foreach($taskCompleteDates as $date)
{
    $tasks = TaskComplete::where('task_complete_date','=',$date)->limit(25)->get();
    $taskDates[$date] = $tasks;
}


Здесь сначала мы получаем разные даты Из таблицы затем на каждую дату мы получаем 25 заданий. и объединение всех данных в массиве taskDates .

Теперь вам нужно реализовать пользовательский код нумерации страниц.

Для пользовательской нумерации страниц вы можете обратиться по ссылке ниже:

Нумерация страниц по коллекции

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

Может быть что-то вроде следующего:

$collection = new Collection();
$dates = TasksComplete::select('task_complete_date')->groupBy('task_complete_date')->get();
foreach ($dates as $date) {
    $limited = TasksComplete::where('task_complete_date', $date)->take(25)->get();
    foreach ($limited as $limit) {
        $collection->push($limit);
    }
}

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