列可见性:如何在列表视图中默认隐藏几列

时间:2018-03-09 07:29:01

标签: laravel backpack-for-laravel

我使用setColumns方法在视图中显示了一些列数据,如下所示:

$this->crud->setColumns([

                    (['name'=>'expire_date','lable'=>'Expire Date']),
                    (['name'=>'username','lable'=>'User']),
                    (['name'=>'prize_id','lable'=>'Prize']), /* New Column(must be hidden by default) */
                    (['name'=>'gifted_from','lable'=>'Gifted From'])  /* New Column(must be hidden by default) */
]);

我期望发生的事情: 现在在同一个列表中,我想添加更多列,以便在列表视图中显示。但默认情况下,这些列应该隐藏在列表视图中,我希望新添加的隐藏列(在上面的列表中)可以通过column visibility

提供的$this->crud->enableExportButtons();选项显示

在laravel背包里有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以将要隐藏的字段添加到模型上的hidden属性中:

/** 
  * The attributes that should be hidden for arrays.
  * 
  * @var array
  */
 protected $hidden = ['attribute'];

然后,您可以通过调用makeVisible方法暂时显示字段:

$user->makeVisible('attribute')

请参阅Serialization

上的文档

答案 1 :(得分:0)

有点晚了,但您可以对默认情况下要隐藏的列执行 'visibleInTable' => false。您将能够在 column visibility 选项中显示它。

例如:

[
    'name' => 'email',
    'label' => "Username",
    'visibleInTable' => false,
],