Laravel 5.4 Backpack无法删除项目,返回“403 Forbidden”错误

问题描述 投票:3回答:2

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

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" },
laravel apache2 backpack-for-laravel
2个回答
0
投票

laravel / framework:5.8.2背包/ crud:3.6

vendor / backpack / crud / src / resources / views / buttons / delete.blade.php替换此代码:type: 'DELETE',

这条线:

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

-1
投票

你应该在你的控制器中检查Access

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

我觉得你没有必要这么复杂。当你安装背包时,你应该跑步

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

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

© www.soinside.com 2019 - 2024. All rights reserved.