如何使用 Sonata 获得实体的管理服务?
How do you get an Entity's Admin service with Sonata?
假设我查询了一堆不同的混合实体。假设所有这些实体都在一个单一的继承中 table,并且有十几种不同的类型。
我想为任何这些实体的 Sonata 编辑页面生成一个 link。
我可以使用 get_class
函数获取实体对象的完全限定 class 名称。我想不出一种方法将 class 提供给 Sonata 并让其 return 代表 class.
的服务对象或管理员的服务 ID
如果可以的话,我可以使用 Admin class 的 generateUrl
方法来创建 link 编辑表单。
所有管理服务都存储在一个池中。
Github : https://github.com/sonata-project/SonataAdminBundle/blob/3.x/src/Admin/Pool.php
可通过服务访问此池 sonata.admin.pool
。
你的魔法方法就在这个服务里面:
$admin = $this->get('sonata.admin.pool')->getAdminByClass('YOUR CLASS NAME');
假设我查询了一堆不同的混合实体。假设所有这些实体都在一个单一的继承中 table,并且有十几种不同的类型。
我想为任何这些实体的 Sonata 编辑页面生成一个 link。
我可以使用 get_class
函数获取实体对象的完全限定 class 名称。我想不出一种方法将 class 提供给 Sonata 并让其 return 代表 class.
如果可以的话,我可以使用 Admin class 的 generateUrl
方法来创建 link 编辑表单。
所有管理服务都存储在一个池中。
Github : https://github.com/sonata-project/SonataAdminBundle/blob/3.x/src/Admin/Pool.php
可通过服务访问此池 sonata.admin.pool
。
你的魔法方法就在这个服务里面:
$admin = $this->get('sonata.admin.pool')->getAdminByClass('YOUR CLASS NAME');