首页 > 解决方案 > 提交表单时Laravel重定向问题

问题描述

我有以下路线

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,如下所示在 Dev Console 中。

在此处输入图像描述

这是一种奇怪的行为,这是意料之外的。提交表单后如何获得显示“OK”的预期行为?如何调试这个?


解决了

问题在于表单中的 HTML 元素没有“名称”属性,因此 Laravel 表单请求验证重定向回来。添加那些缺少的属性后,表单按预期工作。

标签: laravelcsrf

解决方案


解决了

问题在于表单中的 HTML 元素没有“名称”属性,因此 Laravel 表单请求验证重定向回来。添加那些缺少的属性后,表单按预期工作。


推荐阅读