表单 - 访问提交/绑定数据

时间:2016-04-27 10:02:26

标签: php symfony-forms symfony

想象一下这个表格

class CarType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('brand', EntityType::class, array(
                'class' => 'AppBundle:CarBrand',
                'label' => 'Brand',
            ))
            ->add('model', EntityType::class, array(
                'class' => 'AppBundle:CarModel',
                'label' => 'Car model',
                'choices' => array(),                // <- Depends on brand
            ));
        // ...
    }
}

我使用了一些ajax来制作model列表,具体取决于brand选择。

我没有使用FormEvents,因为对于我的简单需求来说这是一个真正的痛苦(我实际上有3个基于多个参数的依赖关系,我已经花了整整一天试图弄清楚如何使其适用于FormEvents

现在,提交表单后,我想从控制器获取绑定值。

/**
 * @Route("/context", name="context_selection")
 */
public function carSelectionAction(Request $request)
{
    $form = $this->createForm(CarType::class, new Car());
    $form->handleRequest($request);
    if ($form->isSubmitted()) {
        $car = $form->getData();
        dump($car);                                 // <- Getting only brand here
    }

    return $this->render('AppBundle::car-selection.html.twig', array(
        'form' => $form->createView()));
}

转储数据仅显示绑定的CarBrand对象,我想是因为选定的CarModel不是有效选择。

如何获取绑定CarModel

我宁愿不必阅读请求参数并自行加载对象

0 个答案:

没有答案