You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Backpack 5.x+Laravel8.x:隐藏软删除项按钮时setAccessCondition方法不存在

解决Backpack 5.x中隐藏软删除条目Edit/Show按钮的方法

错误原因

Backpack 5.x已移除旧版本的setAccessCondition方法,该API在5.x版本中被废弃,因此调用时会提示方法不存在。

解决方案

以下两种方式均可实现隐藏软删除条目的Edit和Show按钮:

方式一:通过操作权限控制

在你的CrudController对应的操作方法中(如setupListOperation或setupTrashOperation),使用allowAccessFrom方法设置基于条目的访问条件:

public function setupListOperation()
{
    // 其他列表配置代码...
    
    // 仅允许未软删除的条目执行update和show操作
    $this->crud->allowAccessFrom('update', function($entry) {
        return ! $entry->trashed();
    });
    $this->crud->allowAccessFrom('show', function($entry) {
        return ! $entry->trashed();
    });
}

方式二:直接控制按钮显示

通过按钮的when方法,指定仅当条目未软删除时才显示对应按钮:

public function setupListOperation()
{
    // 其他列表配置代码...
    
    // 控制Edit按钮仅在条目未软删除时显示
    $this->crud->button('edit')->when(function($entry) {
        return !$entry->trashed();
    });
    
    // 控制Show按钮仅在条目未软删除时显示
    $this->crud->button('show')->when(function($entry) {
        return !$entry->trashed();
    });
}

如果你的需求是在回收站操作(setupTrashOperation)中控制权限,只需将上述代码移至setupTrashOperation方法内即可。

内容的提问来源于stack exchange,提问作者Liju

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 03:59:57