Symfony实体类型无法设置选择值,选中占位符

时间:2017-03-01 02:55:18

标签: symfony

我呼叫实体提供下拉选项。我设置了占位符值。我尝试设置数据值,但无论占位符值是否总是标记为选中。

我的PostFormType:

public function buildForm(FormBuilderInterface $ builder,array $ options)     {

    $builder
        ->add('title', TextType::class, array( 'attr' => array(
            'class' => 'form-control'
        )))
        ->add('price', TextType::class, array( 'attr' => array(
            'class' => 'form-control'
        )))
        ->add('artist', EntityType::class, [
            'data'=>2,
            'placeholder'=>'Choose Artist',
            'class'=>Artist::class,
            'choice_label'=>'artist',
            'query_builder'=> function (EntityRepository $er) {
                return $er->createQueryBuilder('artist')
                    ->orderBy('artist.artist', 'ASC');
            },

            'empty_data'  => null,
            'attr' => array(
                'class' => 'form-control'
            )
        ])

        ->add('userId', HiddenType::class )
        ->add('description', TextareaType::class, array( 'attr' => array(
            'class' => 'form-control'
        )))
        ->add('purchaseDate','date')
        ->add('id',HiddenType::class)
    ;
}

1 个答案:

答案 0 :(得分:0)

如果必须由表单中的用户修改属性data,则不应为artist配置。

如果您要设置新实体的默认值。即使您这样做,UI表单中的更改也不会受到影响,因为data属性会将值重置为提交后提供的2

您始终可以使用相关Constructor的{​​{1}}来设置任何默认值。

但是,Entity是引用的属性。您应该在构建表单之前在artist中执行此操作。

Controller

希望这有帮助!