您好我正在尝试这样做,所以我可以在编辑页面中有一个删除按钮,只是直接删除正在编辑的任何crud资源,现在我开始看一下列表视图并尝试反向工程jQuery的东西,在列表中创建删除按钮,对于我的生活,我无法弄清楚如何做到这一点。我尝试在delete.blade.php视图中抓取刀片代码,当我单击生成的按钮时,我得到403禁止错误。现在我以为我可以继续搞乱jQuery,但不应该删除按钮代码也可以吗?到目前为止我得出的结论是,我遗漏了一些关于权限的愚蠢明显吗?我们也在运行crud权限包,这会对任何事情产生影响吗?这很奇怪,因为我有按钮
@if ($crud->hasAccess('delete'))
检查东西所以不应该意味着我已经拥有权限?我确定可以删除列表视图中的项目。
对不起,如果我很困惑,我有点累了爸爸,可以帮忙:p
答案 0 :(得分:1)
您确定要将AJAX呼叫指向正确的方向吗?
list.blade.js
javascript指向当前页面,因为它是相同的URL,只是一个不同的协议。如果将它放在另一个页面上,它将不会按原样运行。您必须将其指向$this->crud->route
,仍然使用DELETE方法。所以像这样:
function register_delete_button_action() {
$("[data-button-type=delete]").unbind('click');
// CRUD Delete
// ask for confirmation before deleting an item
$("[data-button-type=delete]").click(function(e) {
e.preventDefault();
var delete_button = $(this);
var delete_url = '{{ url($this->crud->route) }}'; <---- notice the change here
if (confirm("{{ trans('backpack::crud.delete_confirm') }}") == true) {
$.ajax({
url: delete_url,
type: 'DELETE',
success: function(result) {
// Show an alert with the result
new PNotify({
title: "{{ trans('backpack::crud.delete_confirmation_title') }}",
text: "{{ trans('backpack::crud.delete_confirmation_message') }}",
type: "success"
});
// delete the row from the table
delete_button.parentsUntil('tr').parent().remove();
},
error: function(result) {
// Show an alert with the result
new PNotify({
title: "{{ trans('backpack::crud.delete_confirmation_not_title') }}",
text: "{{ trans('backpack::crud.delete_confirmation_not_message') }}",
type: "warning"
});
}
});
} else {
new PNotify({
title: "{{ trans('backpack::crud.delete_confirmation_not_deleted_title') }}",
text: "{{ trans('backpack::crud.delete_confirmation_not_deleted_message') }}",
type: "info"
});
}
});
}