1

嗨,我正在尝试这样做,以便我可以在编辑页面中有一个删除按钮,直接删除正在编辑的任何 crud 资源,现在我开始查看列表视图并尝试对 jQuery 内容进行逆向工程在列表中创建删除按钮,对于我的生活,我不知道该怎么做。我尝试在 delete.blade.php 视图中获取刀片代码,当我单击生成的按钮时,我收到 403 禁止错误。现在我在想我可以继续弄乱 jQuery,但删除按钮代码不应该也可以工作吗?到目前为止,我的结论是我可能遗漏了一些关于权限的愚蠢明显的东西?我们也在运行 crud 权限包,这会影响什么吗?这很奇怪,因为我有按钮 @if ($crud->hasAccess('delete')) 检查东西所以这不应该意味着我已经拥有权限吗?我确定仍然可以从列表视图中删除项目。

对不起,如果我感到困惑,我是一个超级累的爸爸,可以使用一些帮助:p

4

1 回答 1

1

您确定将 AJAX 调用指向正确的方向吗?

list.blade.jsjavascript 指向当前页面,因为它是同一个 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"
          });
      }
    });
  }
于 2017-06-12T10:24:00.573 回答