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

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

Метод all класса Form возвращает массив всех дочерних полей формы. Ключами массива являются имена полей, а значениями - объекты Form. Метод не принимает параметров и возвращает пустой массив, если у формы нет полей.

Синтаксис

public function all(): array

Пример

Давайте создадим форму с двумя полями и получим все её дочерние элементы через метод all:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentFormExtensionCoreTypeSubmitType; use SymfonyComponentFormFormFactoryInterface; use SymfonyComponentRoutingAttributeRoute; class FormController extends AbstractController { #[Route('/form', name: 'form_index')] public function index(Request $request, FormFactoryInterface $factory): Response { $form = $factory->createBuilder() ->add('name', TextType::class) ->add('email', TextType::class) ->add('save', SubmitType::class) ->getForm(); $children = $form->all(); foreach ($children as $name => $child) { echo $name . ' '; } return new Response(); } } ?>

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

"name email save "

Пример

Давайте получим конкретное поле из массива all и выведем его имя через метод getName:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentFormFormFactoryInterface; use SymfonyComponentRoutingAttributeRoute; class FormController extends AbstractController { #[Route('/form-name', name: 'form_name')] public function name(Request $request, FormFactoryInterface $factory): Response { $form = $factory->createBuilder() ->add('name', TextType::class) ->add('email', TextType::class) ->getForm(); $children = $form->all(); return new Response($children['name']->getName()); } } ?>

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

"name"

Пример

Давайте проверим, что метод all возвращает пустой массив, если у формы нет дочерних полей:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentFormFormFactoryInterface; use SymfonyComponentRoutingAttributeRoute; class FormController extends AbstractController { #[Route('/form-empty', name: 'form_empty')] public function empty(Request $request, FormFactoryInterface $factory): Response { $form = $factory->createBuilder() ->getForm(); $children = $form->all(); return new Response((string) count($children)); } } ?>

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

"0"

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

  • класс Form,
    который представляет форму в Symfony
  • метод get,
    который возвращает конкретное дочернее поле формы
  • метод has,
    который проверяет наличие поля в форме
  • метод getErrors,
    который возвращает ошибки валидации формы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить