Sonata 管理导出字段和集合字段

2023-11-30

我正在尝试制作用于导出的自定义列,但我无法访问子项。有可能这样做吗?

我此时的代码如下所示:

public function getExportFields()
{
    return [
        'ID'                        => 'id',
        'Transaction number'        => 'transactionNumber',
        'Loan account'              => 'loan',
        'Loan name'                 => 'loan.name',
        'Amount'                    => 'amount',
        //'Amount ($)'                => '',
        'Transaction type'          => 'transactionCategory',
        'Reference'                 => 'transactionAssociation.cashTransaction.transactionNumber',
        'Date'                      => 'date'
    ];
}

我找不到解决办法。我想使用PropertyAccess,但我不知道如何将它集成在这里。

我正在使用 Symfony 3.X 和 Sonata。


要在导出中获取集合记录,您不能通过指定具有关联的属性来直接执行此操作,实现此目的的解决方法是,您可以使用 getter 函数在实体中定义一个新的未映射属性,该函数将获取所有集合详细信息,如在 main 中实体将新属性定义为

protected $cashTransactionNumber;

public function getCashTransactionNumber()
{
    $cashTransactionNumber = array();
    $i = 1;
    foreach ($this->getTransactionAssociation() as $key => $transactionAssociation) {
        $cashTransactionNumber [] = $i . 
           ') No.:' . $transactionAssociation->somemethod()->__toString()() . 
           /** Other properties */;
        $i++;
    }
    return $this->cashTransactionNumber = join(' , ', $cashTransactionNumber );
}

然后在你的getExportFields()方法调用该属性

public  function getExportFields(){
    return array(
        'Reference'=>'cashTransactionNumber ',
         ....// Other properties
        );
}

参考:在sonata admin上导出一对多关系

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sonata 管理导出字段和集合字段 的相关文章

随机推荐

  • Intellij - 如何将文本文件添加到资源中

    我正在读一本 properties文件使用properties load和文件名 我想将属性文件添加到 jar 或类路径中 如何将文件添加到 jar 中 我如何从罐子里读取内容 将文件放在源文件夹中 它将被复制到输出并根据以下内容与类一起添
  • 解释一下 phi 系数函数在 Eloquent Javascript 中是如何工作的?

    我目前正在阅读 Eloquent Javascript 到目前为止 这是一本很好的书 但我一直停留在他提出的这个用于计算 phi 系数的函数上 这是代码 显然有很多上下文 我无法复制 粘贴书中的所有内容 所以如果真正读过这本书的人可以向我解
  • 为什么 sysctl 在 Mac OS X 上产生 E_INVAL?

    下面是一个精简的 省略了错误 空检查 C Obj C 代码片段 它使用 sysctl 获取 PID 50 的特定进程的 argv int getProcessArgs 3 CTL KERN KERN PROCARGS 50 sysctl g
  • 如何自动赋予新用户系统用户角色并如何将其显示在网站顶部?

    我对员工表进行了以下数据库设计 Username Name Job etc 还有一个角色表 RoleID RoleName 最后是一个UserRole表 用户角色ID Username RoleID 我正在为公司的部门开发一个基于 Intr
  • 将字符串中的键分配给字典

    我有一个名为sentence the sly fox jumped over the brown dog 我需要创建一个名为Positions 按键为Positions应该是中的字符sentence 这些值应该是这些字符的索引 例如 所需的
  • Ajax 用图像替换文本

    我整理了以下 mootools 脚本 window addEvent domready function var shouts timed php var log log res function updateData url target
  • Dart 支持枚举吗?

    Dart 支持枚举吗 例如 enum myFruitEnum Apple Banana 粗略搜索文档表明没有 开始1 8 您可以像这样使用枚举 enum Fruit apple banana main var a Fruit apple s
  • 在 jquery 切换功能上更改图像

    我试图在使用 jquery 切换时使用替换命令更改图像 基本上显示一个向下箭头 在内容显示后变成一个向上箭头 以下代码有效 但向下箭头未被替换 img src images arrow down png class nav toggle d
  • WPF 中的用户控件 VS 页面

    我正在编写一个简单的应用程序 它有一个菜单 当用户选择每个菜单时MenuItem 我想更改窗口的内容以显示所选内容 我有两个选择 我可以添加一个到我的窗口并写一些页面 我可以写一些UserControls并将它们放入一个ContentCon
  • Laravel 分页资源不会添加元数据

    我有以 JSON 格式返回的资源数据 当我尝试使用分页获取数据时 它不包含元数据 基于文档我的数据应该包含在元数据中 例如 meta current page 1 from 1 last page 1 path http example c
  • Terraform 中的 Elastic Beanstalk 应用程序版本

    我尝试通过参数化名称来管理 terraform 模板中的应用程序版本 这是一次尝试 每当应用程序的内容发生更改时 我们的 CI 流程都会创建一个新的应用程序版本 这样 在elasticbeanstalk中 我可以保留历史应用程序版本的列表
  • JHipster JDL 不生成任何内容,因为必须传递数据库类型

    我正在使用 Jhipster 4 5 3 从我创建的 JDL 文件生成一些代码 因为我无法生成任何东西 所以我采取了JDL 博客样本 我也有同样的问题 The JDL文档仍然提到 您可以通过运行 jhipster import jdl yo
  • 如何仅在确认对话框后翻转开关的选中状态?

    我的问题是 当我点击
  • 为什么 JavaScript 中局部变量名称优先于函数名称?

    在 JavaScript 中 您可以通过多种不同的方式定义函数 function BatmanController var BatmanController function If you want to be EVIL eval func
  • C++ 和 Objective C 之间通信的 IPC 机制

    我正在开发一个Mac应用程序 我需要在其中实现IPC机制 场景是这样的 我的应用程序包含两个可执行文件 一个是本机Mac应用程序 NSStatusItem应用程序 另一个是在CPP上编码的终端应用程序 我想在这两个进程之间建立IPC通信 我
  • 将 FontAwesome 图标添加到 D3 图表

    我正在尝试设置一个图标字体真棒而不是我的 D3 节点中的文本 这是最初的实现 带有文本 g append svg text attr x 0 attr y 4 attr class id text function d return d l
  • 监控与锁定

    何时适合使用Monitor类或lockC 中线程安全的关键字 EDIT 从目前的答案看来lock是一系列调用的简写Monitor班级 锁调用简写到底是什么意思 或者更明确地说 class LockVsMonitor private read
  • 使用http查询字符串作为数据库对象node.js/express

    尝试使用node js express mongodb 我在用着 http localhost 3000 models save model 名称 等等等等 将测试 JSON 对象传递到快速路由 models save 以保存到 mongo
  • Nodejs 在同一时间运行代码一次

    我想在特定时间运行我的流程 但只运行一次 我应该使用 cron 作业 执行然后停止作业还是使用 setTimeout 哪个更好 Update 我在node cron模块中找到了它 我认为这比使用 setTimeout 更好 另一个关于日期的
  • Sonata 管理导出字段和集合字段

    我正在尝试制作用于导出的自定义列 但我无法访问子项 有可能这样做吗 我此时的代码如下所示 public function getExportFields return ID gt id Transaction number gt trans