Как вставить недостающие месяцы из массива в Laravel?Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как вставить недостающие месяцы из массива в Laravel?

Сообщение Anonymous »

У меня есть запрос, который возвращает статус для каждого месяца, когда я пытаюсь использовать dd($attr['month']), это вернет массив этого но, судя по тому, что я проверил, кажется, что несколько месяцев пропущены.

Код: Выделить всё

private function getSummaryData($seller)
{
$query = json_decode(json_encode(DB::select(DB::raw("select user_id,
DATE_FORMAT(created_at, '%b %Y') ym,
sum(IF(status='pending', 1, 0)) status_pending,
sum(IF(status='success', 1, 0)) status_success
FROM `case_summaries`
WHERE user_id= " . $user->user->user_id . "
GROUP BY DATE_FORMAT(created_at, '%b %Y')
ORDER BY created_at asc "))), true);

$attr = [];
$attr['month'] = [];
$attr['pending'] = [];
$attr['success'] = [];

foreach ($query as $key => $value) {
array_push($attr['month'], $value['ym']);
array_push($attr['pending'], $value['status_pending']);
array_push($attr['success'], $value['status_success']);
}

dd($attr['month']);

return $attr;
}
Результат массива для $attr['month']

Код: Выделить всё

^ array:24 [
0 => "Feb 2018"
1 => "Mar 2018"
2 => "Apr 2018"
3 => "May 2018"
4 => "Jun 2018"
5 => "Jul 2018"
6 => "Aug 2018"
7 => "Sep 2018"
8 => "Oct 2018"
9 => "Nov 2018"
10 => "Dec 2018"
11 => "Jan 2019"
12 => "Feb 2019"
13 => "Mar 2019"
14 => "Apr 2019"
15 => "May 2019"
16 => "Jul 2019"
17 => "Aug 2019"
18 => "Sep 2019"
19 => "Oct 2019"
20 => "Nov 2019"
21 => "Dec 2019"
22 => "Jan 2020"
23 => "Mar 2020"
]
Как вы можете видеть, здесь отсутствует месяц — июнь 2019 года. Как я могу добавить недостающие месяцы запроса?
У меня есть функция, которая получает все месяцы между двумя датами

Код: Выделить всё

public function getMonthListFromDate(Carbon $date)
{
$start    = new DateTime(); // Today date
$end      = new DateTime($date->toDateTimeString()); // Create a datetime object from your Carbon object
$interval = DateInterval::createFromDateString('1 month'); // 1 month interval
$period   = new DatePeriod($start, $interval, $end); // Get a set of date beetween the 2 period
$months = array();
foreach ($period as $dt) {
$months[] = $dt->format("F Y");
}
return $months;
}
У меня возникли проблемы с тем, как реализовать это с помощью цикла foreach в моей функции getSummaryData(), а затем проверяет if($attr['month' ] == getMonthListFromDate()). Как я могу добавить недостающие месяцы при передаче их в мой запрос?

Подробнее здесь: https://stackoverflow.com/questions/663 ... in-laravel
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как сравнить периоды времени (месяцы), когда месяцы могут иметь разные длины
    Anonymous » » в форуме Php
    0 Ответы
    195 Просмотры
    Последнее сообщение Anonymous
  • Как сравнить периоды времени (месяцы), когда месяцы могут иметь разные длины
    Anonymous » » в форуме Php
    0 Ответы
    230 Просмотры
    Последнее сообщение Anonymous
  • Polars: заполните недостающие месяцы для каждой группы.
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Вставьте недостающие элементы индексированного массива со значением по умолчанию и обеспечить индексированный результат
    Anonymous » » в форуме Php
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Перечислите месяцы между двумя датами
    Гость » » в форуме C#
    0 Ответы
    35 Просмотры
    Последнее сообщение Гость

Вернуться в «Php»