У меня следующий код для просмотра списка городов, которые существуют для всех конференций, хранящихся в базе данных.
Например, если в базе данных есть 2 записи конференции, и у одной есть город Ньюкасл, у другой - город Лидс, который он должен показывать в этом модальном Ньюкасле и Лидсе -
<ul class="modal-list">
@foreach($cities as $city)
<li class="col-lg-4 col-md-6 col-sm-12">
<a class="" name="city" id="{{$city}}">{{$city}}</a>
</li>
@endforeach
</ul>
Когда пользователь нажимает в каком-то городе, появляется эта ошибка:
jquery.min.js:4 GET http://proj.test/conferences/where/city/Newcastle 500 (Internal Server Error)
Когда пользователь щелкает в каком-либо городе, выполняется запрос ajax, чтобы получить конференции, столбец которых "город" равен городу, по которому пользователь щелкнул:
$("a[name='city']").on('click', function(){
var city = $(this).attr("id");
$.ajax({
url: '{{ route('city.conferences',null) }}/' + city,
type: 'GET',
success:function(result){
console.log(result)
alert(result);
$('#conferences').empty();
var newConferences='';
var placeholder = "{{route('conferences.show', ['id' => '1', 'slug' => 'demo-slug'])}}";
$.each(result, function(index, conference) {
var url = placeholder.replace(1, conference.id).replace('demo-slug', conference.slug);
newEvens += '<div class="col-12 col-sm-6 col-lg-4 col-xl-3 mb-4">\n' +
' <div class="card box-shaddow">\n' +
' <img class="card-img-top" src='+ conference.image +' alt="Card image cap">\n' +
' <div class="card-body">\n' +
' <p class="font-size-sm"><i class="fa fa-calendar" aria-hidden="true"></i> '+conference.start_date+'</p>\n' +
' <h5 class="card-title h6 font-weight-bold text-heading-blue">'+conference.name+'</h5>\n' +
' <p class="card-text font-size-sm"><i class="fa fa-map-marker" aria-hidden="true"></i> '+conference.place+', '+conference.city+'</p>\n' +
' </div>\n' +
' <div class="card-footer d-flex justify-content-between align-items-center">\n' +
' <a href="' + url + '" class="btn btn-primary text-white">More</a>' +
' <span class="font-weight-bold font-size-sm"></span>\n'
' </div>\n' +
' </div>';
});
$('#conferences').html(newConferences);
},
error: function(error) {
console.log(error.status)
}
});
});
Маршрут:
ConferenceController getConferencesOfCity route:
Route::get('conferences/where/city/{slug}','ConferenceController@getConferencesOfCity')->name('city.conferences');
ConferenceController метод getConferencesOfCity:
public function getConferencesOfCity(Request $request)
{
$conferences = Conference::whereCity('city', DB::raw($request->slug))->get();
return response()->json($conferences);
}
Знаете ли вы, почему я вижу ошибку?