laravel 5.5.44 post 路由器抛出 302 发现错误

laravel 5.5.44 post router throws 302 Found Error

尝试在路由中使用 post 方法进行更新时遇到 302 发现错误。

路线

Route::post('update_article/{id}', 'ArticleController@update_article')->name('articles.update');

编辑表单Blade

{!! Form::model($article, ['route'=>['articles.update', $article->id], 'method' => 'post', 'class' => 'form-horizontal form-stripe']) !!}

控制器

public function update_article(Request $request, $id)
    {
        $data = Article::find($id);
        $url = $this->url->to('/');       
        $data->image = $request->input('image');
        $data->title = $request->input('title');
        $data->description = $request->input('description');
        $data->user_id = Auth::id();
        $data->status = $request->input('status');


       if ($request->hasFile('image')) 
       {
        $f_imageName = time().'.'.request()->image->getClientOriginalExtension();
        request()->image->move(public_path('uploads/articles'), $f_imageName);
        $data->image =$url.'/public/uploads/articles/'.$f_imageName; 
       }
       else
       {
        $data->image = $request->input('image_hidden');    
       }

    $data->save();   
    Session::flash('success', 'articles has been updated');
    return redirect()->route('articles.index');
    }

使用 POST 代替 PUT 进行更新,因为我正在使用 summernote。当我使用 PUT 时,大的 description 会被截断。在 summernote 中,它指出如果我不使用 POST 方法可能会发生这种情况。

在文章资源的 update_article 路由之前还有一个默认路由:

Route::resource('articles', 'ArticleController');

注意:csrf token 在 post 操作中作为 _token 参数发送。找不到任何解决方案。有什么我想念的吗?

如果您已经创建了您提到的资源。

Route::resource('articles', 'ArticleController');

然后从您的路线中删除以下代码 web.php 和 运行 代码。

Route::post('update_article/{id}', 'ArticleController@update_article')->name('articles.update');

最后,我将数据库结构从 varchar 更改为类型 text,并且在更新操作中使用 PUT 方法而不是 POST 不会截断长描述。因此,在表单提交中使用方法 PUT 返回默认路由 -

路线:

Route::resource('articles', 'ArticleController');

现在一切正常。