В моей форме есть два выпадающих списка. Параметры во втором раскрывающемся списке зависят от выбранного значения в первом раскрывающемся списке. Если проверка не удалась, мне нужно получить опубликованное значение первого раскрывающегося списка, чтобы установить параметры во втором раскрывающемся списке. Итак, как получить опубликованное значение в классе типа формы при сбое проверки?






$form = $this->createForm(MyFormType::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
/**
* Do your stuff when form is valid
*/
} else {
/**
* Here you can get the input data even failed with $form->getData()
*/
dump($form->getData());
}
$form->getData() дает мне значения ввода, которые не потерпели неудачу в else:
array:4 [▼
"first_dropdown" => "hello"
]
$ реклама = новая реклама ();
$form = $this->createForm(AdvertType::class, $advert, ['method' => 'POST'])
->handleRequest($request);
if (false === $form->isSubmitted()) {
$form->submit([]);
}
if (false === $form->isValid()) {
return ['form' => $form];
}
$manager = $this->getDoctrine()->getManager();
$this->appendTags($advert);
$manager->persist($advert);
$manager->flush();
return $advert;
Мне нужно что-то вроде ниже, например, в моем классе типа формы. DocType в методе buildForm (), который я сделал:
$request = Request::createFromGlobals();
$myObjectId = $request->request->get('doc')['object']; // selected option of the first dropdown
$object = ($obectId) ? $objectRepository->find($objectId) : null;
Затем я мог бы использовать выбранный объект для заполнения второго раскрывающегося списка с помощью построителя запросов.
Это лучший способ