Получение значения Single FormType в контроллере

У меня есть поле в моем FormType, значение которого я пытаюсь получить на момент его успешной отправки и передать его своему контроллеру. Я устанавливаю значение поля, передавая переменную в форму и используя attr текстового поля, чтобы установить его на соответствующее значение в $options, конечный результат html - <input type = "hidden" id = "listing_editId" name = "listing[editId]" required = "required" value = "1288701182" readonly = "readonly">

ListingType.php

    ->add('editId', HiddenType::class, [
      'required' => true,
      'disabled' => false,
      'mapped' => true,
      'attr' => [
        'value' => $options['editId'],
        'readonly' => true,
      ]
    ])

Я пробовал $form->get('editId');, но он не возвращает значение, я также пробовал $request->get('editId');, но безрезультатно.

ListingController.php

/**
 * @Route("/account/listings/create", name = "listing_create")
 */
public function createAction(Request $request)
{
    $r = sprintf('%09d', mt_rand(0, 1999999999));
    $form = $this->createForm(ListingType::class, null, [
        'currency' => $this->getParameter('app.currency'),
        'hierarchy_categories' => new Hierarchy($this->getDoctrine()->getRepository('AppBundle:Category'), 'category', 'categories'),
        'hierarchy_locations' => new Hierarchy($this->getDoctrine()->getRepository('AppBundle:Location'), 'location', 'locations'),
        'editId' => $r,
    ]);
    $form->handleRequest($request);
    if ($form->isSubmitted() && $form->isValid()) {
        $listing = $form->getData();
        $listing->setUser($this->getUser());

        try {
            $em = $this->getDoctrine()->getManager();
            $em->persist($listing);
            // I'd like to be able to get the value of an input field that is "editId" here
            $em->flush();
            $this->addFlash('success', $this->get('translator')->trans('Listing has been successfully created.'));
        } catch (\Exception $e) {
            $this->addFlash('danger', $this->get('translator')->trans('An error occurred when creating listing object.'));
        }

        return $this->redirectToRoute('listing_my');
    }

    return $this->render('FrontBundle::Listing/create.html.twig', [
      'form'  => $form->createView(),
      'editId' => $r]);
}
Стоит ли изучать 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 и хотите разрабатывать...
0
0
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте $form->get('editId')->getData() или $request->request->get('editId') или $form->getData()['editId']

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