若在列表中使用showColumnSelector()执行导出操作时如何可以导出选中的字段而不是所有字段

我在列表中使用了showColumnSelector()筛选字段和hideColumns()隐藏字段, 在执行导出操作时会将所有字段全部导出, 如何控制只导出选择并在列表页显示的字段到Excel中.
若在列表中使用showColumnSelector()执行导出操作时如何可以导出选中的字段而不是所有字段
如图所示导出所有选中的值.

我试图在导出时筛选我选中的字段名, 但是我不知道如何获取所有选中的字段数组
若在列表中使用showColumnSelector()执行导出操作时如何可以导出选中的字段而不是所有字段

希望能够为我解答, 感谢.

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
最佳答案

通过getVisibleColumnNames方法可以获取筛选后的字段

$columns = $grid->getVisibleColumnNames();

$grid->export()->titles(array_combine($columns, $columns));
3年前 评论
讨论数量: 3

通过getVisibleColumnNames方法可以获取筛选后的字段

$columns = $grid->getVisibleColumnNames();

$grid->export()->titles(array_combine($columns, $columns));
3年前 评论

@Jiangqh
您好,我使用 “getVisibleColumnNames ()” 这个方法后获取到的数组是空,检查过后发现在这个方法中的”$this->columnNames” 方法获取到的结果为空,我加入了以下的修改 :

您好,我使用 “getVisibleColumnNames ()” 这个方法后获取到的数组是空,检查过后发现在这个方法中的”$this->columnNames” 方法获取到的结果为空,我加入了以下的修改 :

 if (empty($this->columnNames)) {
     return $visible;
 }else{
    array_push($visible, Grid\Column::SELECT_COLUMN_NAME, Grid\Column::ACTION_COLUMN_NAME);
    return collect($this->columnNames)->filter(function ($column) use ($visible) {
     return in_array($column, $visible);
    })->toArray();
}

目前可以满足需求但不知道这个方法是否正确,感谢回复 :)

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!