Как получить значение поля формы в Symfony 4 при сбое проверки?

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
730
3

Ответы 3

$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;

Это лучший способ

Andrey Mashukov 15.01.2019 23:54

Мне нужно что-то вроде ниже, например, в моем классе типа формы. DocType в методе buildForm (), который я сделал:

$request = Request::createFromGlobals(); 
$myObjectId = $request->request->get('doc')['object']; // selected option of the first dropdown
$object = ($obectId) ? $objectRepository->find($objectId) : null;

Затем я мог бы использовать выбранный объект для заполнения второго раскрывающегося списка с помощью построителя запросов.

Другие вопросы по теме