我有以下路线
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";
}
}
根据此代码,预期的行为应该是看到“确定”,而不是我得到 HTTP 302 重定向,如下所示在 Dev Console 中。
这是一个奇怪的行为,这不是预期的。提交表单后如何获得显示“OK”的预期行为?如何调试?
问题是表单中的 HTML 元素没有“名称”属性,因此 Laravel 表单请求验证重定向回来。添加那些缺失的属性后,表单按预期工作。
问题是 HTML 表单中的元素没有
name
属性,因此导致 Laravel Form Request Validation 重定向回来。添加缺少的属性后,表单按预期工作。