如何在laravel 5.7中删除用户

时间:2019-01-22 09:04:24

标签: ajax laravel

我正在将我的应用程序从laravel 4.2迁移到5.7。 我有删除用户的逻辑: 此操作是在点击时触发的

$.ajaxSetup({
    headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
})

$.ajax({
    type: "DELETE",
    url: "{{ URL::to('administrator/admin-delete') }}"+"/"+id
});

在我的路线文件中:

Route::delete('admin-delete', 'UsersController@removeAdminDelete');

以及在我的控制器中:

public function removeAdminDelete($id)
{
    $user = Admin::find($id);
    File::delete($user->photo);
    $user->delete();
    Session::flash('successDelete', "ok");
    if(Auth::user()->id == $id){
        Auth::user()->logout();
        return Redirect::to("administrator");
    }else{
        return Redirect::back();
    }
}

当我尝试删除用户时,在控制台中出现此错误:

  

删除my_delete_url 419(未知状态)!

编辑后,我得到404错误!

3 个答案:

答案 0 :(得分:4)

Laravel中的419错误表示您没有为kubeadm init phase certs apiserver --config=/etc/kubernetes/kubeadm-config.yaml kubeadm init phase certs apiserver-kubelet-client --config=/etc/kubernetes/kubeadm-config.yaml systemctl stop kubelet delete the docker container with kubelet systemctl restart kubelet 提供令牌。

dos所示,您可以在页面的顶部添加一个csrf标签,其标记为:

meta

,然后设置ajax请求以使其始终包含:

<meta name="csrf-token" content="{{ csrf_token() }}">

注意事项:请确保在拉入jQuery之后并提出ajax请求之前添加以上代码。


此外,您应该使用$.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } }); 而不是delete作为路由。

更改

resource

Route::resource('admin-delete', 'UsersController@removeAdminDelete');

答案 1 :(得分:0)

似乎与csrf令牌有关。尝试像这样在您的ajax调用中添加csrf令牌:

<meta name="csrf-token" id="csrftoken" content="{{ csrf_token() }}">

并使用此标头设置ajax:

$.ajaxSetup({
  headers: {
    'X-CSRF-TOKEN': $('#csrftoken').attr('content')
  }
});

答案 2 :(得分:0)

在结束表单标签之前,像这样添加

<form action='' method='post'>
......
@csrf
</form>