Как получить все данные таблицы с помощью group By (year) в laravel

Как получить все данные таблицы с помощью group By (year) в laravel

16.11.2019 02:43:26 Просмотров 49 Источник

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

SalaryArchive::groupBy('year')->get()

но мне нужно что-то вроде этого

enter image description here

Любая помощь будет оценена по достоинству

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/58890366/how-to-get-all-the-data-of-a-table-using-group-by-year-in-a-laravel#comment104046610_58890366
он будет показывать весь месяц года, но он будет создавать два / более заголовков в течение года, но мне нужен только один заголовок для каждого года
https://stackoverflow.com/questions/58890366/how-to-get-all-the-data-of-a-table-using-group-by-year-in-a-laravel#comment104046640_58890366
он даст те же результаты, что и предыдущий, и проблема все еще остается в течение года
https://stackoverflow.com/questions/58890366/how-to-get-all-the-data-of-a-table-using-group-by-year-in-a-laravel#comment104046713_58890366
я имею в виду, что он создаст два заголовка в течение года. Как и в моей таблице, у меня есть два года, как 2005 и 2006. И в 2005 году у меня есть только месячная зарплата (май), так что для этой ситуации это будет нормально. Но для 2006 года, где у меня есть два месяца, как апрель и май, то в соответствии с вашим запросом он создаст два заголовка для 2006 года, я надеюсь, вы поймете, что я пытаюсь сказать
https://stackoverflow.com/questions/58890366/how-to-get-all-the-data-of-a-table-using-group-by-year-in-a-laravel#comment104046741_58890366
да что-то вроде этого. но что делать, если у меня есть несколько лет, таких как 2019, 2018 и так далее

Ответы - Как получить все данные таблицы с помощью group By (year) в laravel / How to get all the data of a table using group By (year) in a laravel

Является ответом!
AlbertoSinigaglia

16.11.2019 03:06:25

Итак, сначала вам нужно найти весь год в вашей базе данных, а затем, получить месяц для каждого года, так что-то вроде:

$years=SalaryArchive::groupBy('year')->select('year')->get();
$monthOnYear = array();
foreach($years as $year) $monthOnYear[$year->year] = SalaryArchive::where('year',$year->year)->groupBy('month')->select('month')->get();

и тогда, чтобы правильно получить доступ к нему на ваш взгляд, вы можете сделать что-то вроде :

@foreach($monthOnYear as $year => $months)
   Year : {{ $year }}
   Months:
   @foreach($months as $month) 
       {{$month->month }}
   @endforeach
@endforeach

очевидно с правильным стилем html css

https://stackoverflow.com/questions/58890366/how-to-get-all-the-data-of-a-table-using-group-by-year-in-a-laravel/58890543#comment104046981_58890543
Недопустимый тип смещения в SalarysheetController.php строка 28
https://stackoverflow.com/questions/58890366/how-to-get-all-the-data-of-a-table-using-group-by-year-in-a-laravel/58890543#comment104046988_58890543
он будет бросать эту ошибку
https://stackoverflow.com/questions/58890366/how-to-get-all-the-data-of-a-table-using-group-by-year-in-a-laravel/58890543#comment104047008_58890543
в какой строке относится?
https://stackoverflow.com/questions/58890366/how-to-get-all-the-data-of-a-table-using-group-by-year-in-a-laravel/58890543#comment104047013_58890543
извините забыл добавить это
https://stackoverflow.com/questions/58890366/how-to-get-all-the-data-of-a-table-using-group-by-year-in-a-laravel/58890543#comment104047017_58890543
$monthOnYear[$год] = SalaryArchive::где('год',$год)->метод groupBy('месяц')->получить();
https://stackoverflow.com/questions/58890366/how-to-get-all-the-data-of-a-table-using-group-by-year-in-a-laravel/58890543#comment104047123_58890543
отредактировал ответ, попробуйте с этим
https://stackoverflow.com/questions/58890366/how-to-get-all-the-data-of-a-table-using-group-by-year-in-a-laravel/58890543#comment104047173_58890543
теперь ошибка исчезнет, и год в порядке, но месяц отсутствует
https://stackoverflow.com/questions/58890366/how-to-get-all-the-data-of-a-table-using-group-by-year-in-a-laravel/58890543#comment104047180_58890543
что ты имеешь ввиду под пропажей? я снова отредактировал ответ
https://stackoverflow.com/questions/58890366/how-to-get-all-the-data-of-a-table-using-group-by-year-in-a-laravel/58890543#comment104047209_58890543
да я трезубец последний но и месяцев не показывает
https://stackoverflow.com/questions/58890366/how-to-get-all-the-data-of-a-table-using-group-by-year-in-a-laravel/58890543#comment104047227_58890543
Dd ($monthOnYear) после foreach какой возврат?
Закрыть X