Laravel Datatables ajax не может отправить параметр для запроса

Я использую Laravel Datatables. Я успешно загружаю данные из базы данных MySQL через запрос. Проблема, с которой я столкнулся, заключается в том, чтобы запросить таблицу по месяцам, отправив номер месяца. Я не могу успешно отправить параметр, содержащий номер месяца, в мою функцию ajax на серверной части. Я пробовал много вариантов, но ничего не получалось.

Я получаю "Undefined index: month"

Вот мои фрагменты кода:

Аякс Javascript:

<script>
    $(function() {
        var month = "<?= $brandData['month'] ?>"; // contains a month number
        $('#accounts').DataTable({
            processing: true,
            serverSide: true,
            type: "POST",
            ajax: '{!! url('brand_ajax') !!}',
            data : {'month' :  month },
            columns: [
                { data: 'brand_name', name: 'brand_name' , className: 'text-xl-left'},
                { data: 'brand_volume', name: 'brand_volume', className: 'text-xl-right' },
                { data: 'brand_margin', name: 'brand_margin' , className: 'text-xl-right'},
                { data: 'brand_commission', name: 'brand_commission', className: 'text-xl-right' },
            ]
        });
    });
</script>

Вот моя функция ajax для возврата данных

public function brand_ajax()
{
 $month = $_POST["month"];
    $brands = SaleInvoice::select(DB::raw('brands.name as brand_name,
                avg(NULLIF(margin,0)) as brand_margin,
                sum(commission) as brand_commission,
                sum(amt_invoiced) as brand_volume
                '))
        ->join('brands', 'brands.ext_id', '=', 'saleinvoices.brand_id')
        ->where('brands.is_active', '=', true)
        //                 ->whereRaw('MONTH(saleinvoices.invoice_date) = ?', (11))
        ->whereRaw('MONTH(saleinvoices.invoice_date) = ?', ($month))
        ->having('brand_volume', '>', 0)
        ->groupBy('brands.name')
        ->get();


    return DataTables::of($brands)
        ->editColumn('brand_commission', function ($brand) {
            return number_format($brand->brand_commission, 2);
        })
        ->editColumn('brand_margin', function ($brand) {
            return number_format($brand->brand_margin, 2);
        })
        ->editColumn('brand_volume', function ($brand) {
            return number_format($brand->brand_volume, 2);
        })
        ->make(true);
}

Я не могу сказать, где устанавливается $brandData из предоставленного вами кода, но если он должен содержать все ваши параметры в массиве или что-то в этом роде, не могли бы вы просто: <?php dd($brandData);?> на странице и видишь, что это тебе дает? Затем вы можете понять, как правильно получить индексы.

techcyclist 23.02.2019 02:30
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
1
80
1

Ответы 1

Я решил это сам. Я просто добавил параметр в строку URL.

url('brand_ajax/' . $month)

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