Разбивка на сгруппированные запросы - PullRequest
0 голосов
/ 24 марта 2019

Я пишу систему для отслеживания денежных потоков. Пользователи регистрируют совершенные ими транзакции: ( скриншот индекса транзакций ) но мне нужно разделить эти транзакции по дате. Я попытался использовать Запрос для индексации, но это не выглядело лучшей практикой (однако, это сработало). Сейчас я пытаюсь сделать еще один подход: извлечь все транзакции и разбить их на страницы по дате. Возможно ли это?

ps: возможно, помогает группировка по месяцам? как:

$transactions = Transaction::all()->groupBy(function($transaction) {
    return Carbon::parse($transaction->date)->format('m-Y');
});

это возвращает:

{
    "03-2019": [
        {
            "id": 1,
            "title": "Teste 1",
            "date": "2019-03",
            "user_id": 1,
            "description": "Primeiro teste, com entrada de 1500 reais.",
            "value": "1500.00",
            "flow": 1,
            "created_at": "2019-03-24 05:39:45",
            "updated_at": "2019-03-24 05:39:45"
        },
        {
            "id": 2,
            "title": "Teste 2",
            "date": "2019-03",
            "user_id": 1,
            "description": "Segundo teste, com saída de 500 reais.",
            "value": "500.00",
            "flow": 0,
            "created_at": "2019-03-24 05:39:45",
            "updated_at": "2019-03-24 05:39:45"
        }
    ]
}

ps²: да, интерфейс написан на бразильском португальском, а английский не является моим родным языком ..:)

1 Ответ

0 голосов
/ 25 марта 2019

Попробуйте это

<?php 

use Illuminate\Pagination\LengthAwarePaginator;

$transactions = Transaction::all()->groupBy(function($transaction) {
  return Carbon::parse($transaction->date)->format('m-Y'); 
});

//new LengthAwarePaginator($data,$countOfData,$perPage,$currentPage);
$transactions=new LengthAwarePaginator($transactions->forPage($currentPage,$perPage),$transactions->count(),$currentPage);

Надеюсь, это поможет ...

...