1. 程式人生 > >Laravel 資源管理器 destory方法

Laravel 資源管理器 destory方法

生成一個控制器

php artisan make:controller -r Admin/UsersController

在名稱空間 Admin 下

路由如下

Route::namespace('Admin')
    ->prefix('admin')
    ->group(function () {
Route::resource('users', 'UsersController');
    });

資源路由 文件

動作URI行為路由名稱
GET/photosindexphotos.index
GET/photos/createcreatephotos.create
POST/photosstorephotos.store
GET/photos/{photo}showphotos.show
GET/photos/{photo}/editeditphotos.edit
PUT/PATCH/photos/{photo}updatephotos.update
DELETE/photos/{photo}destroyphotos.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')}});
即可