【问题标题】:Get the id of current element in Admin::configureListFields获取 Admin::configureListFields 中当前元素的 id
【发布时间】:2017-04-01 02:41:51
【问题描述】:

如何获取Admin::configureListFields中的当前对象id?

$this->getSubject() 返回null

谢谢

【问题讨论】:

    标签: sonata-admin symfony-sonata sonata


    【解决方案1】:

    根据您提出问题的方式,我假设您遇到了和我一样的问题。

    因此,我的假设是:您希望使用 configureListFields 来操作列表行的内容/“当前”元素。

    正如 greg0rie 指出的那样 - 这里有一个误解,因为没有“当前”元素。

    特别是 - configureListFields 在迭代列表以输出之前调用,因此不存在当前元素。

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

    因此,我最终做了以下事情:

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

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

    {{ myTwigFunction(admin, object) }}

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

    object 是当前模板。

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

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

    【讨论】:

      【解决方案2】:

      由于列表中有许多对象,因此您的问题毫无意义。我会继续假设您是子管理员。如果是这样的话,我想你在找$this->getParent()->getSubject()->getId()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-31
        • 1970-01-01
        • 2013-03-01
        • 2013-09-10
        • 2017-10-12
        • 2012-08-04
        • 1970-01-01
        • 2020-05-27
        相关资源
        最近更新 更多