У меня есть форма, которую я отправляю на маршрут, используя POST, как только он попадает на этот маршрут, я инструктирую его запустить функцию в контроллере, после чего он возвращает ошибку 400. Сначала я подумал, что это связано с тем, что Laravel не обрабатывает мой новый маршрут в файле web.php. Я пошел по SSH и сделал маршрут: список, и мой новый маршрут был там.
Я также обновил кэш маршрутов и очистил его, все еще безрезультатно.
Интересно, однако, если япоместите неправильное имя функции на маршрут, флаги Laravel и error и объявят, что функция не существует, но когда я изменяю имя функции на свое фактическое имя функции, возникает ошибка 400. Я признаю, что это может быть сама функция, но я ожидаю, что она выдаст ошибку, что с ней не так, как 400!
<form action="{{ url('/all-events') }}" method="POST"> {{ csrf_field() }}
<div class="product-showing mb-40">
<input autocomplete="false" value="{{ucfirst($lowercase_city)}}" hidden name="city">
<button class="btn" type="submit">
<span class="btn-text">View Events in {{ucfirst($lowercase_city)}}</span> <span class="btn-border"></span>
</button>
</div>
</form>
И тогда мой маршрут настроен как
Route::post('all-events', 'FrontendController@post_all_events')->name('event.post_all_events')
Мои функции
public function post_all_events(Request $request)
{
$city_name = $request->city;
$city = Town::findOrFail($city_name);
$lowercase_city = Str::lower($city->town);
return redirect('/all-events/'.$lowercase_city);
}