FastAdmin后台列表根据条件显示隐藏某一列字段

我们知道FastAdmin后台列表的操作按钮可以根据条件显示或隐藏,而一列一列的字段是否也可以呢?

答案是可以!

流程:

  1. 后台控制器里给Config赋值,比如我们要控制status字段的显示隐藏,定义一个变量show_status:
$this->assignConfig('show_status', 0);

注意用的是assignConfig而不是assign,不然JS获取不到。而且这行代码要放在模板被返回之前,也就是return $this->view->fetch();前面,不然JS也获取不到!

  1. 控制器对应的JS,这样写:
...
{
    field: 'status',
    title: __('Status'),
    operate: 'LIKE',
    visible: Config.show_status
},
...

这样就可以了。如果想要在高级搜索的表单中中也同样隐藏这个字段,operate也用这种判断,示例如下:

...
{
    field: 'status',
    title: __('Status'),
    operate: Config.show_status == 1 ? 'LIKE' : false,
    visible: Config.show_status
},
...

这个操作在做数据隔离时非常有用,比如我们不想让某个角色组的用户看到某些列的信息,就可以这么做。

1 thought on “FastAdmin后台列表根据条件显示隐藏某一列字段”

Leave a Comment

豫ICP备19001387号-1