gpt4 book ai didi

forms - Symfony 2 Form 创建用户并添加组

转载 作者:行者123 更新时间:2023-12-01 08:34:24 24 4
gpt4 key购买 nike

我想创建一个表单来添加用户:

$builder->add('firstname', 'text', array(
'required' => 'required'
))
->add('middlename')
->add('lastname')
->add('email', 'email')
->add('isActive');

但我还想添加一组。我有一个实体“Group”和一个表单“GroupType”。但是如何在我的所有组中添加一个选项以选择一个或多个?

我试过了:

->add('groups', 'choice' )

但收到此错误:

Notice: Object of class Doctrine\Common\Collections\ArrayCollection could not be converted to int in /vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Core/ChoiceList/ChoiceList.php line 457 

如何解决这个问题?

最佳答案

要创建一个填充了数据库中所有组对象的选择字段,请使用“实体”字段。要启用多项选择(1+ 个选项),请使用“多个”选项。例如:

$builder->add('groups', 'entity', array(
'class' => 'YourBundle:Group',
'property' => 'name',
'multiple' => true,
));

“属性”选项的值决定了显示哪个组字段。如果您需要对选择元素中的对象进行排序或显示对象的子集,请使用“query_builder”选项通过自定义查询加载选择。例如:

use Doctrine\ORM\EntityRepository;
// ...

$builder->add('groups', 'entity', array(
'class' => 'YourBundle:Group',
'property' => 'name',
'multiple' => true,
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('g')
->orderBy('g.name', 'ASC');
},
));

entity Field Type在 Symfony2 文档中。

关于forms - Symfony 2 Form 创建用户并添加组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13519961/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com