Ajax сообщение говорит неопределенное laravel 6 - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь обновить свою БД с помощью AJAX, если есть какие-то изменения, но мне кажется, что-то упущено.

Мой контроллер:

    // Update dates
public function updateDates(Request $request)
{
    // dd($input);
    $event = new Event();
    $event->invoice = $request->input('invoice');
    $event->paid = $request->input('paid');
    $event->save();

    return response()->json(['success'=>'Got Simple Ajax Request.']);
}

Маршруты:

    //Events
Route::resource('event', 'EventController');
Route::post('/updateDates', ['as' => 'updateDates', 'uses' => 'EventController@updateDates']);

Jquery:

 $('.datepickerstart').datepicker({
        autoclose: true,
        todayHighlight: true,
        format: 'yyyy-mm-dd'
    }).on('changeDate', function(e) {
        e.preventDefault();

        var update_id = $(this).data('evid');
        var invoice = $("input[name=invoice_date]").val();
        var payment = $("input[name=payment_date]").val();

        console.log(update_id, invoice, payment);

        $.ajax({
           method:'post',
           url:'{{ route("updateDates") }}',
           dataType:'JSON',
           data: { 
                id : update_id,
                invoice : invoice,
                paid : payment 
            },
           success: function(data) {
                    alert(data.success);

            }
        });        
});

Я записываю в консоль правильные данные перед ajax публикацией. Не могу даже запросить dd () в моем контроллере, что я делаю не так?

Ошибка консоли:

VM4649: 1 POST http://localhost: 8000 / updateDates 500 (внутренняя ошибка сервера)

Я получал "неопределенное" раньше.

ОБНОВЛЕНИЕ: решено, после просмотра журналов. Я создавал новые объекты вместо того, чтобы обновлять их, и получил ошибку: нет значения поля по умолчанию

1 Ответ

0 голосов
/ 04 марта 2020

Добавьте поле csrf в сообщение данных следующим образом:

data: { 
   id : update_id,
   invoice : invoice,
   paid : payment,
   _token: '{{csrf_token()}}' 
},
...