对destroy方法的Laravel Route资源MethodNotAllowedHttpException

Sam*_*zon 2 php laravel laravel-4 laravel-routing

我在routes.php中使用由以下行定义的资源Laravel路由:

Route::resource('test', 'App\Controllers\Teacher\TestController', ['only' => ['index', 'create', 'destroy']]);
Run Code Online (Sandbox Code Playgroud)

指数法正常工作.在索引模板中,我创建了一个表单,以便删除列表中的项目.

<form method="DELETE" action="{{ URL::action('App\Controllers\Teacher\TestController@destroy', $audit->id ) }}">
    <input type="submit" value="Remove" />
</form>
Run Code Online (Sandbox Code Playgroud)

Laravel正确生成了URL,但是当我发布此表单时,我收到以下错误:

exception 'Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException' in /var/www/project/bootstrap/compiled.php:5365
Run Code Online (Sandbox Code Playgroud)

我已经尝试在我的表单的方法属性中通过POST更改DELETE但它不起作用.

我也读过这篇文章,但它对我没有帮助:资源定义方法Laravel-4上的MethodNotAllowedHttpException

Mar*_*łek 6

当您手动创建表单时,您应该使用POSTas方法,并_methoddelete这种方式使用值:

<form method="POST" action="{{ URL::action('App\Controllers\Teacher\TestController@destroy', $audit->id ) }}">
    <input type="hidden" name="_method" value="DELETE" />
    <input type="submit" value="Remove" />
</form>
Run Code Online (Sandbox Code Playgroud)

在Laravel文档中引用表单方法欺骗