获取Admin :: configureListFields中当前元素的id

时间:2016-11-17 14:00:52

标签: sonata-admin symfony-sonata sonata

如何在Admin::configureListFields中获取当前对象ID?

$this->getSubject()返回null

谢谢

2 个答案:

答案 0 :(得分:0)

由于列表中有很多对象,因此您的问题毫无意义。我会继续,并假设你是一名儿童管理员。如果是这种情况,我认为您正在寻找$this->getParent()->getSubject()->getId()

答案 1 :(得分:0)

根据您对问题的表述方式,我认为您遇到了与我相同的问题。

因此,我的假设是:您正在寻找使用configureListFields来操纵列表行或“当前”元素的内容。

正如greg0rie所指出的-这里存在一个误解,即没有“当前”元素。

具体来说-在迭代列表进行输出之前调用configureListFields,因此不存在当前元素。

此外,据我所知,没有任何方法可以覆盖在迭代列表时专门调用的方法。

因此,我最终要做的事情如下:

首先覆盖要更改列表中任何内容的树枝模板。

然后创建一个Twig扩展功能,并传入“ admin”和“ object”属性,该属性此时应在模板级别可用:

{{ myTwigFunction(admin, object) }}

admin是表示列表的奏鸣曲管理员的实例。

object是当前模板。

因此,您现在可以访问当前实体对象以及正在处理它的奏鸣曲管理员。

然后我个人将其传递给服务以生成我想要进行的更改。