为Symfony 2表单上的“非映射实体字段”设置默认值

纳尔逊·特谢拉

我有一个Form类,其中有一个非映射实体字段:

->add('client', 'entity', array(
    'class' => 'MyBundle:Client',
    'property' => 'name',
    'empty_value' => 'Select...',
    'query_builder' => function(EntityRepository $er) {
        return $er->createQueryBuilder('c')
            ->orderBy('c.name', 'ASC');
    },
    'mapped' => false,
))

我这样创建的:

$form = $this->createForm(new MyType(),
    $entity,
    array('action' => $this->generateUrl('my_action'))
);

如何设置默认值?尝试了这个,但是没有用:

'data' => 23423, // id in table 
'data' => 'Client name'
$form->setDefault('client', 'Client name'); // in controller

请注意,这是一个非映射字段。

PawełKolanowski

Symfony2设置默认选择字段选择

@Carrie Kendall回答:

“您需要将EntityManager注入FormType类。这是一个简化的示例:”

class EntityType extends AbstractType{
    public function __construct($em) {
        $this->em = $em;
    }

    public function buildForm(FormBuilderInterface $builder, array $options){
         $builder
             ->add('MyEntity', 'entity', array(
                     'class' => 'AcmeDemoBundle:Entity',
                     'property' => 'name',
                     'query_builder' => function(EntityRepository $er) {
                         return $er->createQueryBuilder('e')
                             ->orderBy('e.name', 'ASC');
                         },
                     'data' => $this->em->getReference("AcmeDemoBundle:Entity", 3)
        ));
    }
}

在控制器中:

 // ...    

 $form = $this->createForm(new EntityType($this->getDoctrine()->getManager()), $entity);

// ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为所有Symfony表单类型设置默认值

如何在实体之间的ManyToMany关系之后,在连接的用户之后将默认值设置为symfony表单字段(User字段)

在Symfony2中的表单值转换器上设置默认值

Symfony2,设置日期时间字段的默认值

Angular2反应性表单-使用下拉菜单为表单字段设置默认值

使用Jackson映射时,将默认值设置为空字段

与Symfony2表单类型的实体一起添加默认值

将实体设置为默认[symfony2]

如何将Django Choices表单字段的默认值设置为None

在Odoo的表单视图中将字段的默认值设置为当前日期时间

Symfony2:如何为字段DateTime设置默认值

无法为 Xamarin 表单中的 Picker 设置默认值

Symfony2表单构建器实体(未映射)设置值(数据)不起作用

openerp:为one2many字段设置默认值

如何在odoo 9中为many2one字段设置默认值?

如何在HTML文本字段(以表单形式)中将包含空格的字符串设置为默认值?

如何在CreateTables()上为列设置默认值?

Symfony-将实体设置为ManyToOne

Play Framework 2 Ebean为字段指定默认值

Symfony QueryParam 为空值

SQL字段没有默认值-即使字段设置为默认NULL

无法为SynPS / 2 Synaptic设置默认值

Symfony2-设置实体,使其属性为“只读”

在Golang中执行json Unmarshal时,如何将默认值设置为映射值?

Odoo如何通过小部件many2many_binary为特定字段设置默认值

为结构字段分配默认值

Symfony 3表单:如何为textarea小部件设置默认值

HasDefaultValue() 的实体框架对象的属性是否在创建时自动设置为所述默认值?

默认值为null的MySQL int字段设置为0