Метод get класса Form
Метод get класса Form возвращает
дочерний элемент формы по его имени. Первым
параметром передаётся имя поля. Если поле с таким
именем не найдено, метод выбрасывает исключение
OutOfBoundsException. Метод часто используется
для доступа к вложенным полям, изменения их данных
или настройки опций после создания формы.
Синтаксис
public function get(string $name): FormInterface
Пример
Давайте создадим форму с полем title и получим
его через метод get:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\FormType;
class ArticleController extends AbstractController
{
public function index(): Response
{
$builder = $this->createFormBuilder();
$builder->add('title', TextType::class);
$form = $builder->getForm();
$field = $form->get('title');
return new Response($field->getName());
}
}
?>
Результат выполнения кода:
"title"
Пример
Давайте изменим данные дочернего поля через метод
get:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Form\Extension\Core\Type\TextType;
class ArticleController extends AbstractController
{
public function index(): Response
{
$builder = $this->createFormBuilder();
$builder->add('title', TextType::class);
$form = $builder->getForm();
$form->get('title')->setData('hello');
return new Response($form->get('title')->getData());
}
}
?>
Результат выполнения кода:
"hello"