РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
288 of 1361 menu

Метод submit класса Form

Метод submit класса Form заполняет форму переданными данными и запускает процесс обработки формы. Первым параметром передаётся массив данных, например $_POST или $_GET, вторым необязательным параметром - очищать ли поля, третьим - нужно ли вызвать событие POST_SUBMIT.

Синтаксис

public function submit(array|string $submittedData, bool $clearMissing = true): static

Пример

Давайте создадим простую форму и отправим в неё данные через метод submit:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentFormExtensionCoreTypeSubmitType; use SymfonyComponentFormFormFactoryInterface; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_form')] public function index(Request $request, FormFactoryInterface $factory): Response { $form = $factory->createBuilder() ->add('title', TextType::class) ->add('send', SubmitType::class) ->getForm(); $form->submit(['title' => 'hello']); if ($form->isSubmitted() && $form->isValid()) { $data = $form->getData(); return new Response($data['title']); } return new Response('invalid'); } } ?>

Результат выполнения кода:

"hello"

Пример

Давайте отправим данные из $_POST напрямую и проверим статус формы:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentFormFormFactoryInterface; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_form')] public function index(Request $request, FormFactoryInterface $factory): Response { $form = $factory->createBuilder() ->add('title', TextType::class) ->getForm(); $form->submit($request->request->all()); $res = [ 'submitted' => $form->isSubmitted(), 'valid' => $form->isValid(), ]; return new Response(json_encode($res)); } } ?>

Результат выполнения кода при пустом запросе:

{"submitted":true,"valid":true}

Смотрите также

  • класс Form,
    который представляет собой форму
  • метод handleRequest,
    который заполняет форму из запроса
  • метод isSubmitted,
    который проверяет, была ли форма отправлена
  • метод isValid,
    который проверяет, прошла ли форма валидацию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить