【问题标题】:Send data from controller to form type从控制器发送数据到表单类型
【发布时间】:2016-05-30 11:38:44
【问题描述】:

我有一个关于在 symfony2 中管理表单的问题。所以在我的控制器中我有:

$form = $this->createForm(SubMenuType::class);

在我的 SubMenuType 类中:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $aTemplate  = Template::$aTemplates;
    $aMenu = $this->getDoctrine()->getRepository('AppAdminBundle:Menu')->findAll();
    $builder
        ->add('name', TextType::class)
        ->add('template',ChoiceType::class, array('choices' => $aTemplate,'choices_as_values' => true))
        ->add('menu',ChoiceType::class, array('choices' => $aMenu,'choices_as_values' => true))
        ->add('save',SubmitType::class, array('label'=> 'Save'))
    ;
}

问题是:如何从 SubMenuType 的菜单实体中获取 $aMenu 数据?请帮我。提前谢谢

【问题讨论】:

标签: php symfony php-5.5


【解决方案1】:

解决问题的最简单方法是使用EntityType 表单类型:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $aTemplate  = Template::$aTemplates;
    $builder
        ->add('name', TextType::class)
        ->add('template',ChoiceType::class, array('choices' => $aTemplate,'choices_as_values' => true))
        ->add('menu', EntityType::class, array(
            'class' => 'AppAdminBundle:Menu', 
            'choice_label' => 'property of your menu entity you want as label'
        ))
        ->add('save',SubmitType::class, array('label'=> 'Save'))
    ;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    相关资源
    最近更新 更多