Как через ajax получить одну запись из базы данных, используя Laravel?

Код в routes.php
Route::get('/events?{id}', 'EventsController@show');

Код функции show в EventsController
public function show($id = 0)
{
  $events = Events::find($id);
  return view('events', ['events' => $events]);
}

Код ajax (Jquery)
var id = 9;
$.ajaxSetup({
                  headers: {
                      'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                  }
});
$.get({
  url: '/events?'+id,
  method: 'get',
  success: function(result){
                    console.log()
   }
});

Начал изучать laravel (7 версия).
Приведенный код возвращает полностью всю страницу. Скажите, как получить запись одной строки базы данных, например, с id = 9, используя ajax.
  • Вопрос задан
  • 249 просмотров
Решения вопроса 1
glaphire
@glaphire
PHP developer
В коде много ошибок
1) в ajax не добавляется get-параметр, выходит просто /events?9, а не /events?id=9
2) wildcards в роутинге ларавеля не действует на обычные гет параметры, поэтому нет смысла указывать айди как /events?{id}, или формировать урл как /events/9, тогда wildcard будет иметь смысл.
3) следуя из п. 2, никакой id не будет автоматически передан в экшен, нужно его самому достать из объекта запроса. Объект запроса можно автоматически инжектить в аргументы экшена
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы