无法在laravel中删除

时间:2016-02-28 09:20:01

标签: php laravel

我正在使用laravel 5.2,我无法删除laravel中的文章。以下是我的观点链接:

<form method="DELETE" action="/article/{{ $article->id }}">
{{ csrf_field() }}
<button class="btn btn-danger" type="submit">Delete</button>
</form>

以下是我的控制器代码:

  public function destroy($id)
{
     Article::destroy($id);
     Session::flash('msg','Article deleted successfully');
     return redirect()->back();
}

以下是路线列表: enter image description here

2 个答案:

答案 0 :(得分:0)

HTML表单实际上不支持GETPOST以外的任何方法。为了解决这个问题,Laravel欺骗了这个方法,然后在请求中选择了它。

来自docs

  

HTML表单不支持PUTPATCHDELETE操作。所以,什么时候   定义从HTML调用的PUTPATCHDELETE路由   在表单中,您需要向表单添加隐藏的_method字段。该   使用_method字段发送的值将用作HTTP请求   方法

因此,您只需要改变您的表单:

<form method="POST" action="/article/{{ $article->id }}">
    {{ csrf_field() }}
    <input type="hidden" name="_method" value="DELETE">
    <button class="btn btn-danger" type="submit">Delete</button>
</form>

您还可以使用Blade生成_method {{ method_field('DELETE') }}

答案 1 :(得分:0)

在您的视图文件中,您需要做的是......

<form method="POST" action="/article/{{ $article->id }}">
<input type="hidden" name="_method" value="DELETE">
{{ csrf_field() }}
<button class="btn btn-danger" type="submit">Delete</button>
</form>