У меня следующие маршруты
Route::get('videos/{video}/edit', 'VideoController@edit');
Route::put('videos/{video}/update2', 'VideoController@update2');
первый маршрут загружает следующий разделенный вид
<form action='/videos/{{$video->uid}}/update2' method='post'>
<button class='btn btn-default' type='submit'>Update</button>
{{csrf_field()}}
{{method_field('PUT')}}
</form>
из кода контроллера, указанного ниже
class VideoController extends Controller{
public function edit(\App\Models\Video $video){
return view('video.edit',[
'video' => $video,
]);
}
public function update2(VideoUpdateRequest $request,\App\Models\Video $video){
echo "ok";
}
}
согласно этому коду, ожидаемое поведение должно заключаться в том, чтобы увидеть "ok", вместо этого я получаю HTTP 302 Redirect, как показано ниже в консоли разработчика.
Это странное поведение, которого нельзя ожидать. Как добиться ожидаемого поведения при отображении «ОК» после отправки формы? Как это отладить?
Проблема заключалась в том, что элементы HTML в форме не имеют атрибутов name, поэтому Laravel Form Request Validation перенаправляет обратно. после добавления этих недостающих атрибутов форма работает должным образом.
Спасибо за ответ, проблема связана с проверкой, при удалении проверки маршрут работает должным образом.
Пожалуйста, опубликуйте свое решение в отдельном ответе, спасибо.
ответ добавлен, спасибо за напоминание






Решено
Проблема заключалась в том, что элементы HTML в форме не имеют атрибутов name, поэтому Laravel Form Request Validation перенаправляет обратно. после добавления этих недостающих атрибутов форма работает должным образом.
Вам нужно перенаправить на представление, а затем отправить ему сообщение об успешном выполнении. laravel.com/docs/5.7/redirects. Либо перенаправить обратно на ту же страницу, либо просто увидеть «хорошо».