【问题标题】:Symfony Sonata Admin Bundle - export custom fields with twig templates to XLSSymfony Sonata Admin Bundle - 将带有树枝模板的自定义字段导出到 XLS
【发布时间】:2018-09-27 02:37:51
【问题描述】:

代码

我的奏鸣曲管理类代码:

class UsersAdmin extends AbstractAdmin
{
.....
    protected function configureListFields(ListMapper $listMapper)
    {

        $listMapper
            ->add('getSummaryTimeInGame','string',[
                'label'    => 'Summary time in game',
                'template' =>'AdminBundle::get_summary_time_in_game.html.twig'
            ])
            ->add('getPercentTasksDone', 'string', [
                'label'    => 'Percents tasks done',
                'template' => 'AdminBundle::get_percent_tasks_done.html.twig'
            ])
    }

   public function getExportFields()
   {
       return [
            'Name'     => 'name',
            'Surname'  => 'surname',
            'Summary time in game' => 'getSummaryTimeInGame',
            'Percents tasks done'  => 'getPercentTasksDone',
       ];
   }

.....
}

问题

字段“getSummaryTimeInGame”和“getPercentTasksDone”在数据网格列表视图中可见,但在导出到 XLS 时,它们是空白的

如何在 XLS 导出时正确列出这些字段?

【问题讨论】:

  • getSummaryTimeInGame 和 getPercentTasksDone 都是链接实体上的现有方法?
  • @AirBair 这些方法在链接实体中不存在。这些字段的值的自定义逻辑在树枝模板中(在 $listMapper 中作为参数“模板”给出)
  • 这就是为什么它不起作用!导出操作独立于列表配置。导出字段中的值必须与链接实体中的属性或方法的名称相对应。根据文档:sonata-project.org/bundles/admin/3-x/doc/reference/…
  • @AirBar 那么,如何在导出的字段中包含自定义逻辑值?我想在树枝模板中使用我的服务来获得价值。向实体注入服务不是一个好习惯。

标签: symfony sonata-admin sonata symfony3.x


【解决方案1】:

在您的用户实体(链接到此管理类的实体)中创建这两个函数。

public function getSummaryTimeInGame{
    // return the desired calculated value.
}

public function getPercentTasksDone(){
    // return the desired calculated value.
}

在此导出您的工作表后,将在您的文件中获取这些值。

【讨论】:

    猜你喜欢
    • 2018-07-22
    • 2012-07-15
    • 2013-09-06
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2014-01-02
    • 2014-09-27
    • 1970-01-01
    相关资源
    最近更新 更多