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

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

Метод handleRequest класса Form принимает объект Request и обрабатывает данные отправленной формы. Он определяет метод запроса (GET или POST), извлекает данные из запроса и передаёт их форме через метод submit. Первым параметром передаётся объект Request. Метод не возвращает значение, а изменяет состояние формы.

Синтаксис

$form->handleRequest($request);

Пример

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

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; class ArticleController extends AbstractController { public function index(Request $request): Response { $form = $this->createFormBuilder() ->add('name', TextType::class) ->add('save', SubmitType::class, ['label' => 'Send']) ->getForm(); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $data = $form->getData(); return new Response('Hello ' . $data['name']); } return $this->render('article/index.html.twig', [ 'form' => $form->createView(), ]); } } ?>

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

Hello abcde

Пример

Давайте обработаем форму с несколькими полями и проверим валидность:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\IntegerType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Validator\Constraints as Assert; class ArticleController extends AbstractController { public function index(Request $request): Response { $form = $this->createFormBuilder() ->add('name', TextType::class, [ 'constraints' => [new Assert\NotBlank()], ]) ->add('age', IntegerType::class, [ 'constraints' => [new Assert\Positive()], ]) ->add('save', SubmitType::class, ['label' => 'Send']) ->getForm(); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $data = $form->getData(); return new Response('Name: ' . $data['name'] . ', Age: ' . $data['age']); } return $this->render('article/index.html.twig', [ 'form' => $form->createView(), ]); } } ?>

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

Name: user, Age: 25

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

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