【问题标题】:Custom query in sonata admin奏鸣曲管理中的自定义查询
【发布时间】:2017-05-30 11:53:10
【问题描述】:

我是奏鸣曲和 symfony 的新手,我想知道是否有办法为 configureFormFileds() 中的一个实体创建自定义查询?

我需要它在多个实体上构建一个相当复杂的管理视图,这些实体通过单个中间表以星形方式(许多连接)进行多对多相关。我的想法是构建一个复杂的查询来获取所有数据,然后将其传递给我的表单。

我也尝试在原则中映射所有这些关系,并在一系列自定义表单中逐个获取它们,但不幸的是,实体必须相互检查,所以这不起作用。

【问题讨论】:

  • 请提供更多信息,附上代码示例,谢谢。

标签: php symfony sonata


【解决方案1】:

是的,您可以为实体创建自定义查询。 (以教义为例)

       ->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

【讨论】:

    【解决方案2】:

    您需要提供更多信息才能获得准确的答案,但关于您的主要问题:

    我是奏鸣曲和 symfony 的新手,我想知道是否有办法 为其中的一个实体创建一个自定义查询 configureFormFileds()?

    我可以回答。一般来说,这是可能的,是的。查看sonata_type_modelquery 配置参数或sonata_type_model_autocomplete 字段类型的callback 选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-17
      • 2018-09-27
      • 1970-01-01
      • 1970-01-01
      • 2017-06-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多