Как отобразить продажи продукта в месяц в Laravel

Я чувствую трудности в этом разделе. поэтому я планирую отображать данные о продажах продукта A с первого месяца до текущего периода. где в каждом месяце он будет отображать данные о продажах. Однако здесь мне сложно отображать данные о продажах. Кроме того, отображаемый месяц должен быть ограничен этим месяцем, чтобы последующие месяцы не отображались первыми.

это мой код

Контроллер:

public function index($id)
    {
        $thisYears = date('Y');
        $thisMonth = date('m');

        $produk = Product::findOrFail($id);
        $transaksi = Transaction::where('product_id', $produk->id)
                     ->where('created_at', 'LIKE','%'.$thisYears.'%')
                     // ->Where('status','!=','Menunggu')
                     ->get();
        $totalTrans = $transaksi->count();


        /*Date*/
        $months = array(1 => 'Januari '.$thisYears, 2 => 'Februari '.$thisYears, 3 => 'Maret '.$thisYears, 4 => 'April '.$thisYears, 5 => 'Mei '.$thisYears, 6 => 'Juni '.$thisYears, 7 => 'Juli '.$thisYears, 8 => 'Agustus '.$thisYears, 9 => 'September '.$thisYears, 10 => 'Oktober '.$thisYears, 11 => 'November '.$thisYears, 12 => 'Desember '.$thisYears);
        $transposed = array_slice($months, date('n'), 12, true) + array_slice($months, date('n'), true);
        $last8 = array_reverse(array_slice($transposed, -8, 12, true), true);
        return view('admin.product.insight.index', compact('transaksi','totalTrans','thisMonth','months','transposed','last8'));
    }

JS:

https://pastebin.com/cT8VMSy8

image display product data sales

Попробуйте манипулировать датой с помощью Углерод. Вам будет легче. Удачи

mare96 22.05.2019 10:47
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Сравнение структур данных: Массивы и объекты в Javascript
Сравнение структур данных: Массивы и объекты в Javascript
Итак, вы изучили основы JavaScript и хотите перейти к изучению структур данных. Мотивация для изучения/понимания Структур данных может быть разной,...
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Прошлая статья была первой из цикла статей о создании системы электронной коммерции с использованием Keystone.js, и она была посвящена главным образом...
Приложение для отслеживания бюджета на React js для начинающих
Приложение для отслеживания бюджета на React js для начинающих
Обучение на практике - это проверенная тема для достижения успеха в любой области. Если вы знаете контекст фразы "Практика делает человека...
Стоит ли использовать React в 2022 году?
Стоит ли использовать React в 2022 году?
В 2022 году мы все слышим о трендах фронтенда (React, Vue), но мы не знаем, почему мы должны использовать эти фреймворки, когда их использовать, а...
1
1
1 167
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как упоминал mare96, попробуйте поработать с Carbon. Код комментируется, чтобы объяснить, что делается.

$data = [];

// Circle trough all 12 months
for ($month = 1; $month <= 12; $month++) {
    // Create a Carbon object from the current year and the current month (equals 2019-01-01 00:00:00)
    $date = Carbon::create(date('Y'), $month);

    // Make a copy of the start date and move to the end of the month (e.g. 2019-01-31 23:59:59)
    $date_end = $date->copy()->endOfMonth();

    $transaksi = Transaction::where('product_id', $produk->id)
        // the creation date must be between the start of the month and the end of the month
        ->where('created_at', '>=', $date)
        ->where('created_at', '<=', $date_end)
        // ->Where('status','!=','Menunggu')
        ->count();

    // Save the count of transactions for the current month in the output array
    $data[$month] = $transaksi;
}

Это даст вам массив, который должен выглядеть так, в зависимости от ваших данных:

array(12) {
  [1]=>int(254)
  [2]=>int(564)
  [3]=>int(345)
  [4]=>int(675)
  [5]=>int(234)
  [6]=>int(123)
  [7]=>int(143)
  [8]=>int(676)
  [9]=>int(787)
  [10]=>int(567)
  [11]=>int(780)
  [12]=>int(898)
}

Другие вопросы по теме