08/21/2017 更新 Laravel 5.x
这个问题问的是Laravel 4,但我包括这个,以防人们寻找Laravel 5.x的答案最终在这里。表单助手(以及其他一些帮助程序)自 5.x 起不可用。如果您要执行 GET 或 POST 以外的操作,则仍需要在窗体上指定方法。这是当前实现该目标的方法:
<form action="/foo/bar" method="POST">
<input type="hidden" name="_method" value="PUT">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<!-- other inputs... -->
</form>
您还可以使用而不是写出隐藏的输入。{{ method_field('PUT') }}
_method
查看 https://laravel.com/docs/5.4/routing#form-method-spoofing
《拉拉维尔4》的原始答案
我认为当您单击链接时,它可能会向该端点发送GET请求。Laravel中的CRUD根据REST工作。这意味着它期望的是 DELETE 请求,而不是 GET。
这是Boris Strahija的教程中的一种可能性。
{{ Form::open(array('route' => array('admin.pages.destroy', $page->id), 'method' => 'delete')) }}
<button type="submit" class="btn btn-danger btn-mini">Delete</button>
{{ Form::close() }}
这样,您就可以使用 DELETE 方法以表单形式发送请求。本文解释了为什么传统链接不起作用:
您可能会注意到删除按钮位于窗体中。这样做的原因是,来自我们控制器的 destroy() 方法需要 DELETE 请求,这可以通过这种方式完成。如果按钮是一个简单的链接,请求将通过GET方法发送,我们不会调用destroy()方法。