如何使用资源路由删除一行?

时间:2017-11-28 18:10:48

标签: php laravel

我想从数据库中删除一行但是我收到错误。这是我的代码。如何删除?

Route::resource('x', 'xController', ['only' => [
    'index', 'store', 'destroy'
]]);

<a href="{{ action('xController@destroy', $x->id) }}" class="btn btn-danger">Delete</a>

MethodNotAllowedHttpException in RouteCollection.php line 218:

2 个答案:

答案 0 :(得分:1)

您需要使用Form Method Spoofing

<form action="/foo/bar" method="POST">
    {{ method_field('DELETE') }}
    <input type="hidden" name="_token" value="{{ csrf_token() }}">
</form>
  

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

答案 1 :(得分:0)

您需要使用DELETE方法的表单,因为您正在使用资源控制器。

<form method="POST" action="{{ action('xController@destroy', $x->id) }}">
    {{ method_field('DELETE') }}
    {{ csrf_field() }}
    <input type="submit" value="Delete" class="btn btn-danger">
</form>