Laravel 資源管理器 destory方法
阿新 • • 發佈:2019-01-01
生成一個控制器
php artisan make:controller -r Admin/UsersController
在名稱空間 Admin 下
路由如下
Route::namespace('Admin') ->prefix('admin') ->group(function () { Route::resource('users', 'UsersController'); });
資源路由 文件
動作 | URI | 行為 | 路由名稱 |
---|---|---|---|
GET | /photos | index | photos.index |
GET | /photos/create | create | photos.create |
POST | /photos | store | photos.store |
GET | /photos/{photo} | show | photos.show |
GET | /photos/{photo}/edit | edit | photos.edit |
PUT/PATCH | /photos/{photo} | update | photos.update |
DELETE | /photos/{photo} | destroy | photos.destroy |
控制器內有一個destory方法,動作是DELETE
然後在a連結內無法使用delete,只有get
因此,我們可以更改路由
Route::namespace('Admin') ->prefix('admin') ->group(function () { Route::resource('users', 'UsersController'); Route::get('users/{id}/delete', [ 'as' => 'users.delete', 'uses' => '[email protected]', ]); });
新增一個路由,使其替代原控制器內delete方法
或者
使用ajax方法
html裡a連結
<a id="5" onclick="updateBtn(this)" >刪除</a>
script裡
function updateBtn(node){ var url = '/admin/users/'+node.id; $.ajax({ url:url, type:'DELETE', success:function (result) { alert(result); } }) }
這樣就可以使用控制器內的destory方法了
不過這樣需要一個驗證
分別在頁面內新增
<meta name="csrf-token" content="{{ csrf_token() }}">
js標籤內新增
$.ajaxSetup({headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')}});即可