在奏鸣曲中,可以将列表视图导出为不同的文件格式,如excel、pdf或csv。
此导出基于后台运行的数据库查询。它不认为模板正在操作列表视图中的输出。例如,如果将时间戳保存在数据库中,并且通过
$listMapper->add('testdate', 'date', ['format' => 'y-m-d'])在列表视图中,它正确地显示为"2017-10-01“,但在导出中,本专栏中有类似于"2489489289”的内容.
另一个示例:如果我根据当前对象的不同属性呈现一个表示状态的自定义列,则状态列将永远不会出现在导出的文件中。
对我来说,一个可能的解决方案可能是重写管理控制器,并添加一个自定义回调函数来呈现导出文件手册。
但这里有一个大问题:
我必须实现整个逻辑,以便在导出回调函数中以预期的格式显示列。
有一个优雅的方法来实现这一点吗?我真正想要的是导出当前列表视图的“原样”,而不是基于后台的数据库查询.
谢谢
发布于 2017-09-27 15:35:03
您可以在Admin类的getExportFields()方法中添加要导出的字段,或者可以添加函数并为字段执行自己的逻辑,而不是字段getter,阅读更多的这里。
我在行政管理部门有这样的情况:
public function getExportFields()
{
return array(
$this->trans('export.createdAt') => 'CreatedAtForExport',
$this->trans('export.OfferPage') => 'OfferPageNameForExport'
);
}在我的实体里,我有:
class Entity
{
public function getCreatedAtForExport()
{
return $this->createdAt->format('d.m.Y H:i');
}
public function getOfferPageNameForExport()
{
return $this->isOfferPage ? 'OfferPage' : 'CalcPage';
}
}https://stackoverflow.com/questions/46451480
复制相似问题