Laravel 5.4 Backpack不能删除项目,返回" 403 Forbidden"错误

时间:2017-03-06 09:00:52

标签: laravel apache2 backpack-for-laravel

我正在为Laravel使用背包管理面板。当我想通过点击删除按钮删除某个项目时,我收到 Not Deleted 错误 - 请参阅屏幕截图。

enter image description here

enter image description here

看起来像使用CRUD::resource()Route::resource方法时可能发生的403和405错误,但服务器(我的情况下是apache)不允许它们出现在动态资源上 - 无论这意味着什么详细...

有没有办法在Apache上启用这些方法?

我得到了它的工作,但我想使用默认的HTTP方法。

快速修复

我能够通过复制和修改背包的list.blade.php CRUD视图来解决这个问题。

  1. 复制视图vendor/backpack/crud/src/resources/views/list.blade.php并将其移至resources/views/vendor/backpack/crud/list.blade.php

  2. 修改第271行定义的AJAX请求。

     if (confirm("{{ trans('backpack::crud.delete_confirm') }}") == true) {
          $.ajax({
              url: delete_url,
              type: 'POST', // change from DELETE to POST
              data: { // "spoof" the HTTP verb "DELETE"
                "_method": "DELETE"
              },
    

2 个答案:

答案 0 :(得分:0)

laravel / framework:5.8.2 背包/背包:3.6

供应商/背包/ crud / src /资源/视图/按钮/delete.blade.php 替换此代码: type: 'DELETE',

有这行:

type: 'POST',
data: {
      "_method": "DELETE"
},  

答案 1 :(得分:-1)

您应该检查控制器中的Access

$this->crud->allowAccess(['delete']);

我认为你没有必要这么复杂。 当你安装背包时,你应该像

一样运行
php artisan vendor:publish --provider="Backpack\Base\BaseServiceProvider" #publishes configs, langs, views and AdminLTE files

它会自动将文件复制到正确的位置