想象一下这个表格
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
?
我宁愿不必阅读请求参数并自行加载对象