【问题标题】:Select option of choice dropdown in a form在表单中选择选项下拉列表
【发布时间】:2015-11-27 10:17:05
【问题描述】:

我想从控制器的下拉列表中选择一个选项。我正在尝试使用以下代码:

$form = $this->createForm(new SearchAdvancedType());
$form->get('option')->setData($session->get('option'));

但它在下拉列表中什么也没做。页面加载时未选择任何内容。

要检查该值是否设置正确,我使用以下方法打印它:

$form->get('brand')->Data();

结果是一个数字(它会根据我之前在下拉列表中选择的内容而变化)。

我需要知道正确选择下拉列表值的方法。

【问题讨论】:

    标签: symfony symfony-forms dropdown dropdownchoice


    【解决方案1】:

    要预设一个选择选项,我会将值传递到表单中。

    class MyFormType extends AbstractType
    {
    
        /**
         * @param FormBuilderInterface $builder
         * @param array $options
         */
        public function buildForm(FormBuilderInterface $builder, array $options)
        {
            $builder
                ->add('type', 'choice', [
                    'required' => true,
                    'choices' => ['yes' => 'Yes', 'no' => 'No'],
                    'data' => $options['select_option']
                ])
            ;
        }
    
        /**
         * @param OptionsResolver $resolver
         */
        public function configureOptions(OptionsResolver $resolver)
        {
            $resolver->setDefaults(array(
                'data_class' => null,
                'select_option' => null
            ));
        }
    
        /**
         * @return string
         */
        public function getName()
        {
            return 'my_form';
        }
    
    }
    

    然后在您的控制器中,将值传入;

    $form = $this->createForm(new MyFormType(), null, ['select_option' => 'no');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-19
      • 2017-05-19
      • 1970-01-01
      相关资源
      最近更新 更多