微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何使用ajax请求删除laravel 5.3中的记录?

我正在尝试使用laravel 5.3中的ajax删除记录,我知道这是常见问题之一,并且已经有很多关于此主题的在线解决方案和教程.我尝试了其中一些,但大多数给了我同样的错误NetworkError:405 Method Not Allowed.我尝试以不同的角度完成这项任务,但我陷入困境,无法找到我错的地方,这就是为什么我将这个问题添加到指南中.

我正在尝试使用脚本来删除记录.

Controller.PHP这样

public function destroy($id)
{   //For Deleting Users
    $Users = new usermodel;
    $Users = usermodel::find($id);
    $Users->delete($id);
    return response()->json([
        'success' => 'Record has been deleted successfully!'
    ]);
}

routes.PHP文件

Route::get('/user/delete/{id}', 'UserController@destroy');

在视图中

<button class="deleteProduct" data-id="{{ $user->id }}" data-token="{{ csrf_token() }}" >Delete Task</button>

App.js

$(".deleteProduct").click(function(){
        var id = $(this).data("id");
        var token = $(this).data("token");
        $.ajax(
        {
            url: "user/delete/"+id,
            type: 'PUT',
            dataType: "JSON",
            data: {
                "id": id,
                "_method": 'DELETE',
                "_token": token,
            },
            success: function ()
            {
                console.log("it Work");
            }
        });

        console.log("It Failed");
    });

当我点击删除按钮时,它返回错误NetworkError:405方法不允许在控制台中.没有ajax相同的删除功能正常工作.

任何人都可以指导我,我错了,我可以解决这个问题,我想感谢有人指导我这个.谢谢..

解决方法:

而不是使用Route :: get使用Route :: delete.

除了更改类型:’put’在ajax调用中键入:’DELETE’.

附:这段代码

$Users = new usermodel;        // Totally useless line
$Users = usermodel::find($id); // Can chain this line with the next one
$Users->delete($id);

可以写成:

usermodel::find($id)->delete();

甚至更短:

usermodel::destroy($id);

请记住 – > delete()将触发一个事件,而:: destroy()则不会.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐