【问题标题】:I want to delete an entry using ajax in laravel 5.8我想在 laravel 5.8 中使用 ajax 删除一个条目
【发布时间】:2019-07-15 11:54:19
【问题描述】:

我想在 laravel 5.8 中使用 ajax 删除一个条目,但每次我收到诸如 csrf 令牌不匹配或不允许发布方法或不允许删除方法之类的错误。

我为上述所有问题找到了解决方案。但现在我在删除数据时遇到错误。我使用模型来删除数据而不是控制器。我正在使用 $(model_name)->(model_function) 在控制器中使用模型。我已使用此方法成功添加数据,但现在出现错误。我在下面附上了我的代码和错误截图。我在当前模型中使用了另一个模型。数据库中使用的表是用户表。

View.blade.php

<meta name="csrf-token" content="{{ csrf_token() }}">
<button class='delete_user' data-id="{{ $item->id }}">Delete</button>

ajax.js

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

$(document).on('click','.delete_user',function(){
    var id = $(this).attr('data-id');
    var token = $("meta[name='csrf-token']").attr("content");
    $.ajax({
        type: 'DELETE',
        url: "ajax/"+ id,
        data: {
            '_token': token,
            'id': id
        },
        success: function (response) {
            console.log("ASD");
        }
    });
});

ajaxcontroller.php

public function destroy(ajax $ajax,$id)
    {
        $data = $ajax->delete_user($id);
        echo json_encode($data);
   }

ajax.php

public function delete_user($id)
    {
        if(user::find($id)->delete()){
            echo true;
        }else{
            echo false;
        }
    }

Route::resource('ajax', 'ajaxController');

我期待1,但我得到了

错误 SQLSTATE[42S02]:未找到基表或视图:1146 表 'ajax.ajaxes' 不存在(SQL: select * from 'ajaxes' where id = 52 限制 1)"

Screenshot of Error

【问题讨论】:

  • 你能告诉我们你的控制器路由吗?
  • Route::resource('ajax', 'ajaxController');
  • 删除 | ajax/{ajax} | ajax.destroy |应用\Http\Controllers\ajaxController@destroy |网络
  • 只需在您的模型中添加以下行 protected $table = 'users'; 它会为您工作。
  • 将您的型号名称更改为User.php

标签: php ajax laravel-5


【解决方案1】:

查看.blade.php

<meta name="csrf-token" content="{{ csrf_token() }}">
<button class='delete_user' data-id="{{ $item->id }}">Delete</button>

ajax.js

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

$(document).on('click','.delete_user',function(){
    var id = $(this).attr('data-id');
    var token = $("meta[name='csrf-token']").attr("content");
        $.ajax({
    type: 'post',
    url: "ajax/"+id,
    data: {
        _token: token,
        _method: 'DELETE',
        id: id,
    },
        success: function (response) {
            console.log("ASD");
        }
    });
});

ajaxcontroller.php ```php

public function destroy(request $request,ajax $ajax)
{
    $id = $_POST['id'];
    $data = $ajax->delete_user($id);
    echo json_encode($data);
}
```

ajax.php


    public function delete_user($id)
    {
        $data = user::findOrFail($id)->delete();
        if($data == TRUE){
            return $data;
        }else{
            echo false;
        }
    }

【讨论】:

  • 这不是正确的答案。它仍然给出关于未定义变量 ajax 的错误。
  • 不要使用 $ajax。改用 $request,我已经编辑了代码,请现在检查。
  • 方法 Illuminate\Http\Request::delete_user 不存在。"
  • 使用“使用 Illuminate\Http\Request;”在控制器的开头。我上面已经提到过。试试这个,你的错误会得到解决。
  • 我不用手动添加,创建控制器的时候就已经存在了。
【解决方案2】:

以下面的函数作为参考并在你的函数中进行更改。希望它应该可以工作。

public function remove(Request $request)
{
    //
    $inputs = $request->all();
    // dd($inputs);
    $serviceid = $request->service_id;
    $delete = $request->ListDoc;
    // dd($updates);
    $update = DB::table('files')->where('service_id', $serviceid)->where('filename',$delete)->delete();
    // dd($updates);
    $posts = 'You have removed this document from the list succesfully';
    // return back()->with('success','you have updated it');
    return response()->json(array('posts'=>$posts), 200);


}

【讨论】:

  • 是的,因为我正在通过请求方法获取 id 并使用带有表名的 DB 来删除该特定的 Id 行。因为在 laravel 中,有时 Model 不能像他们在文档中提到的那样删除数据。
  • 对不起,我不知道,但我仍然不知道为什么它会抛出这样的错误,因为我只是从模型中调用一个函数。
【解决方案3】:
public function delete_user($id)
    {
        if(DB::table('table_name')->where('id',$id)->delete()){
            echo true;
        }else{
            echo false;
        }
    }

【讨论】:

  • 它没有达到模型。
猜你喜欢
  • 2012-02-16
  • 2015-02-18
  • 2017-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-08
  • 2020-03-10
  • 2019-07-25
相关资源
最近更新 更多