小编Giu*_*erv的帖子

Laravel5 ajax 删除不起作用

我正在做一个项目,我应该使用ajax从表中删除用户。我一直在寻找多种解决方案,但无论如何都行不通。这是我得到的错误: users

加载资源失败:服务器响应状态为 500(内部服务器错误)

VerifyCsrfToken.php 第 46 行中的 TokenMismatchException

JS:

$('.btn-delete').click(function(){
    var id = $(this).val();
    $.ajax({
        type: 'DELETE',
        url: '/laravel-exercise/public/index/'+id,
        success: function (data) {
            console.log('Success:', data);
        },
        error: function (data) {
            console.log('Error:', data);
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

看法:

$('.btn-delete').click(function(){
    var id = $(this).val();
    $.ajax({
        type: 'DELETE',
        url: '/laravel-exercise/public/index/'+id,
        success: function (data) {
            console.log('Success:', data);
        },
        error: function (data) {
            console.log('Error:', data);
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

路线:

<button class="btn btn-danger btn-delete"
 value="{{$user->id}}" data-token="{{ csrf_token() }}">Delete</button>
Run Code Online (Sandbox Code Playgroud)

用户控制器:

Route::delete('index/{$id}', 'UsersController@destroy');
Run Code Online (Sandbox Code Playgroud)

这里出了什么问题?

javascript php ajax jquery laravel-5

2
推荐指数
1
解决办法
690
查看次数

Laravel Eloquent:路由模型绑定不适用于多字表名称

我正在用ajax进行删除调用以建立模型的销毁路径。一切正常,除了控制器与数据库中的相应记录不匹配。

我打电话给api/serviceoperations/17ajax 删除电话,但是如果我var_dump以这种方式将a 放入控制器中:

    public function destroy(ServiceOperation $serviceOperation) {
        var_dump($serviceOperation);die;
    }
Run Code Online (Sandbox Code Playgroud)

我得到一个不存在的空模型

 public 'exists' => boolean false
Run Code Online (Sandbox Code Playgroud)

当然,我有一个称为ServiceOperation模型,该模型引用具有主键的表service_operations,并且在我的数据库中有一个带有key的记录。 id17

控制器为什么不解析我的ID到数据库中相对记录的路由?


更新(已解决):

使用以下命令创建模型,控制器和迁移

php artisan make:model -m -c -r App\Models\ServiceOperation
Run Code Online (Sandbox Code Playgroud)

无论如何,laravel似乎无法
很好地处理一个表名而不是一个世界:尽管上面的命令对一个单词表名(即App \ Model \ Service)有效,但对2个或多个表却不起作用它不会自己绑定路由中传递的模型。

解决方案是在控制器中使用所有小写字符的输入变量名称。
就我而言,控制器中的自动生成的销毁功能是

    public function destroy(ServiceOperation $serviceOperation) {
        //model bind not working
    }
Run Code Online (Sandbox Code Playgroud)

但是模型绑定无效。

将参数更新为小写字符串,解决该问题,然后模型绑定起作用:

    public function destroy(ServiceOperation $serviceoperation) {
        //model bind working
    }
Run Code Online (Sandbox Code Playgroud)

php laravel eloquent laravel-5 laravel-eloquent

1
推荐指数
1
解决办法
1547
查看次数