在Laravel资源路由中如何使用GET请求直接删除资源
注:本代码片段适用于Laravel 5。
在routes.php
文件顶部添加如下代码片段并将该文件中所有Route::resource
或Route::resources
替换为Route::deletable
或Route::deletables
:
use Illuminate\Routing\Router; Router::macro('deletable', function($name, $controller, $options = []) { $this->resource($name, $controller, $options); $this->get($name."/{{$name}}/delete", [ 'as' => str_replace('/', '.', (Route::getLastGroupPrefix()==''?'': Route::getLastGroupPrefix().'.').$name).'.delete', 'uses' => $controller.'@destroy', ]); }); Router::macro('deletables', function($deletables) { foreach ($deletables as $name => $controller) { $this->deletable($name, $controller); } });
这样,一个额外的GET路由会生效,用于直接删除资源,你将对自己的确认提示负责。
1 Comment