简体   繁体   English

如何使用formtype symfony中的查询构建器获取总计和名称至字段

[英]How get total and name to field with query builder in formtype symfony

I want to create a select field with referece of my types available. 我想用我的可用类型的引用创建一个选择字段。

I have 3 entity. 我有3个实体。 Post, Types[typebase_id, count=0], TypesBase[name,quantity]. 帖子,Types [typebase_id,count = 0],TypesBase [name,quantity]。

I want to display => Choices => 我想显示=>选择=>

  • TypeA (3) TypeA(3)
  • TypeB (12) B型(12)

1- I need to get TypeBase Name. 1-我需要获取TypeBase名称。

2- I need to group by Types (Typebase_id and count=0) 2-我需要按类型分组(Typebase_id和count = 0)

3- The selected value will be Typebase_id of Types entity. 3-选定的值将是Types实体的Typebase_id。

I have this in my formtype. 我的表单中有这个。

$builder->add('types', 'entity', array(
                    'class' => 'PostBundle:Types',
                    'query_builder' => function(EntityRepository $er) use ($user) {
                        return $er->createQueryBuilder('w')
                            ->where("w.user = :user")
                            ->setParameter('user', $user)
                            ->andWhere("w.active = :active")
                            ->setParameter('active', 0);
                    },
                ));

I try __toString in Types, but i cant get TypeBase Name. 我尝试在类型中使用__toString,但我无法获得TypeBase名称。

Thanks 谢谢

Use choice_label parameter. 使用choice_label参数。 Docs: http://symfony.com/doc/2.7/reference/forms/types/entity.html#choice-label 文件: http : //symfony.com/doc/2.7/reference/forms/types/entity.html#choice-label

$builder->add('types', 'entity', array(
    'class' => 'PostBundle:Types',
    'query_builder' => function(EntityRepository $er) use ($user) {
        return $er->createQueryBuilder('w')
            ->where("w.user = :user")
            ->setParameter('user', $user)
            ->andWhere("w.active = :active")
            ->setParameter('active', 0);
    },
    'choice_label' => function ($type) {
        return $type->getName();
    }
));

Or just: 'choice_label' => 'name' . 或者只是: 'choice_label' => 'name'

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM