我是sonata和symfony的新手,我想知道是否有办法为configureFormFileds()
中的某个实体创建自定义查询?
我需要它通过一个类似星形的方式(许多连接)通过单个中间表构建一个相当复杂的管理视图,这些实体是多对多相关的实体。我的想法是构建一个复杂的查询,获取所有数据,然后将其传递给我的表单。
我还尝试在教条中映射所有这些关系,并在一系列自定义表单中逐个获取它们,但不幸的是,必须相互检查实体,这样才能起作用。
答案 0 :(得分:1)
是的,您可以为Entity创建自定义查询。 (Doctrine的例子)
->add(
'manager',
EntityType::class,
[
'label' => 'Manager',
'class' => 'MainBundle\Entity\Manager',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('m')
->where('m.username LIKE :username')
->setParameter('username', $this->getConfigurationPool()
->getContainer()
->get('security.token_storage')->getToken()->getUser()->getName()
)
->orderBy('m.id', 'ASC');
},
]
)
如何创建查询 - 锁定官方documentation。
答案 1 :(得分:0)
您需要提供更多信息才能获得准确答案,但有关您的主要问题:
我是奏鸣曲和symfony的新手,我想知道是否有办法 为其中一个实体创建自定义查询 configureFormFileds()?
我可以回答。一般情况下,这是可能的,是的。查看sonata_type_model的query
配置参数或sonata_type_model_autocomplete字段类型的callback
选项。