【发布时间】: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)"
【问题讨论】:
-
你能告诉我们你的控制器路由吗?
-
Route::resource('ajax', 'ajaxController');
-
删除 | ajax/{ajax} | ajax.destroy |应用\Http\Controllers\ajaxController@destroy |网络
-
只需在您的模型中添加以下行
protected $table = 'users';它会为您工作。 -
将您的型号名称更改为
User.php