首页 > 解决方案 > 如何在 showMapper 中更新对象中的字段

问题描述

我正在奏鸣曲中创建一个联系人数据库区域,并且我在实体上有一个“读取”标志。当用户点击实体的显示操作时,我希望将此读取标志设置为 true。我在 Sonata 的 showMapper 中看不到任何允许这样做的事件。

有人设法做到这一点或知道它是否可能吗?

$showMapper
    ->add('name')
    ->add('subject')
    ->add('message')
    ->add('email','email');

虽然我没有显示读取标志,但我希望在调用 showMapper 时自动将其设置为 true。

谢谢

标签: symfonysonata-admin

解决方案


我找到了答案,奏鸣曲在所有不同类型的管理员配置上触发事件,其中一个事件称为“sonata.admin.event.configure.show”,这是在编辑或显示管理员时触发的。

这非常适合我的需要,因此我创建了一个侦听器来侦听该事件,然后在其中进行了实体编辑。

唯一的限制是它会在所有编辑/节目中触发,所以我需要在侦听器中检查它是哪个管理员,如果不是我想要的管理员,则将其打折——这对于解决这个问题会很好。


推荐阅读