我正在为Laravel使用背包管理面板。当我想通过点击删除按钮删除某个项目时,我收到 Not Deleted 错误 - 请参阅屏幕截图。
看起来像使用CRUD::resource()
或Route::resource
方法时可能发生的403和405错误,但服务器(我的情况下是apache)不允许它们出现在动态资源上 - 无论这意味着什么详细...
有没有办法在Apache上启用这些方法?
我得到了它的工作,但我想使用默认的HTTP方法。
快速修复
我能够通过复制和修改背包的list.blade.php
CRUD视图来解决这个问题。
复制视图vendor/backpack/crud/src/resources/views/list.blade.php
并将其移至resources/views/vendor/backpack/crud/list.blade.php
修改第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"
},
答案 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
它会自动将文件复制到正确的位置