我正在使用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();
}
答案 0 :(得分:0)
HTML表单实际上不支持GET
和POST
以外的任何方法。为了解决这个问题,Laravel欺骗了这个方法,然后在请求中选择了它。
来自docs:
HTML表单不支持
PUT
,PATCH
或DELETE
操作。所以,什么时候 定义从HTML调用的PUT
,PATCH
或DELETE
路由 在表单中,您需要向表单添加隐藏的_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>