繁体   English   中英

在Sonata管理员中“按原样”导出列表视图

[英]Exporting list view “as is” in sonata admin

在奏鸣曲中,可以将列表视图导出为不同的文件格式,例如excel,pdf或csv ...

此导出基于在后台运行的数据库查询。 它不认为模板可能正在操纵列表视图中的输出。 例如,如果时间戳记保存在数据库中,并且该字段是通过以下方式添加的

$listMapper->add('testdate', 'date', ['format' => 'y-m-d'])

在列表视图上,其正确显示为“ 2017-10-01”,但在导出中,此列中有类似“ 2489489289”的内容...

另一个示例:如果我根据当前对象的不同属性渲染表示状态的自定义列,则状态列将永远不会出现在导出的文件中。

也许对我来说可能的解决方案是重写管理控制器并添加自定义回调函数以呈现导出文件手册。

但这是一个大问题:

我必须实现整个逻辑,以便在导出回调函数中也以期望的格式显示列。

是否有一种优雅的方法来实现这一目标? 我真正想要的是“按原样”导出当前列表视图,而不是基于后台的数据库查询...

谢谢

您可以添加要导出哪些字段,或者您可以添加功能,做你自己的逻辑的领域,而不是场干将getExportFields()方法,您的管理类,阅读更多在这里

我在管理员中有这样的内容:

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';
        }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM