如何在 laravel 的背包中有条件地显示列

How to show a column conditionally in backpack for laravel

我需要根据 laravel 背包中的用户权限,有条件地显示一列。

只需要为管理员显示 customertotal 列。 在文档中我找到了visibleInShow,但不知道如何使用它。

注意:我需要使用 header 使该列不可见。

CRUD::column('user')->label('Customer');
CRUD::modifyColumn('user', [
           'name' => 'user',
           'type' => 'closure',
        ]);

实际上 visibleInShow 主要用于特殊情况,例如“隐藏列表中的列,但仍将其导出”或“隐藏列表中的列,但仍允许对其进行搜索”。

根据你的问题,这就是我有条件地隐藏列的方式:

protected function setupListOperation()
{
    // Other columns setup (skipped)
    
    if (Auth::user()->isAdmin) {
        CRUD::column('user')->label('Customer');
    }

    // More columns setup (skipped)
}

或者说简单点:只在满足条件时才添加列。 无需添加列然后添加更多逻辑来隐藏它。