【问题标题】:Laravel redirecting problem when submitting form提交表单时Laravel重定向问题
【发布时间】:2019-05-07 18:19:03
【问题描述】:

我有以下路线

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 表单请求验证重定向回来。添加这些缺失的属性后,表单按预期工作。

【问题讨论】:

  • 您需要重定向到一个视图,然后将成功消息发送到该视图。 laravel.com/docs/5.7/redirects。要么重定向回同一页面,要么只是“ok”的普通视图。
  • 感谢您的回复,问题在于验证,删除验证时,路由按预期工作。
  • 请在自己的答案中发布您的解决方案,谢谢。
  • 答案已添加,感谢提醒

标签: laravel csrf


【解决方案1】:

已解决

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多