#php #laravel #post #routes
Вопрос:
Я новичок в Ларавеле. У меня есть эта форма :
<form action="{{ route('foo.store', ['idFoo' => $foo->id]) }}" method="POST" accept-charset="UTF-8">
и этот маршрут :
Route::post('/foo/store/{idFoo}', [AppHttpControllersFooController::class, 'fooStore'])->name('foo.store');
Кроме того, я добавил @csrf, это не проблема.
Итак, когда используется этот маршрут, он отображает пустую страницу , но если я изменю «опубликовать» на «получить», он отлично работает (кстати, метод FooStore-это просто dd(«тест»)). В режиме «post» он даже не будет смотреть, какой контроллер я использую или что-то в этом роде. Сообщение о маршруте = пустая страница. Никаких ошибок, ничего.
РЕДАКТИРОВАТЬ : Я выяснил, что проблема не в маршруте, а в действии формы «опубликовать». Когда действие «опубликовать», оно отображает пустую страницу, независимо от типа маршрута. Но это прекрасно работает в действии «получить».
Комментарии:
1. вы, вероятно, пропустили
@csrf
в форме2. Нет, @csrf там есть.
3. Я вижу, что у вас нет никаких ошибок на странице, но вы получаете что-нибудь в журналах? Убедитесь, что в вашем
.env
файле естьAPP_ENV=local
иAPP_DEBUG=true
.4. Что выводится на
network
вкладке инструментов разработки для браузера?5. У My .env уже есть APP_ENV=локальный и APP_debug=true.
Ответ №1:
попробуйте это
<form action="{{ url("/foo/store")}}/{{$foo->id}} method="POST" accept-charset="UTF-8">
@csrf
</form>
надеюсь, это сработает
Комментарии:
1. Этого не произошло. В любом случае, спасибо.
Ответ №2:
Попробуйте выполнить эту команду:
php artisan route:cache
Комментарии:
1. Пожалуйста, добавьте дополнительные сведения, чтобы расширить свой ответ, например, ссылки на рабочий код или документацию.
2. Я так и сделал, но всегда одна и та же пустая страница.
3. были ли у вас какие-либо другие маршруты, которые разрешились бы в /foo/store/* над вашим почтовым маршрутом?
Ответ №3:
РЕШЕНО : Это самая странная вещь. По неизвестной причине измените
Route::post('/foo/store/{idFoo}'
в
Route::post('/foo/store/bar/{idFoo}'
решил проблему. Я понятия не имею, почему.