Метод getConfig класса Form
Метод getConfig класса Form возвращает объект FormConfigInterface, который хранит все настройки формы: имя, тип данных, опции, атрибуты, ограничения и прочие параметры, переданные при создании формы. Метод не принимает параметров и всегда возвращает объект конфигурации, даже если форма не содержит пользовательских опций.
Синтаксис
public function getConfig(): FormConfigInterface
Пример
Давайте создадим простую форму и получим её конфигурацию через метод getConfig:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
class FormController extends AbstractController
{
public function index(): Response
{
$form = $this->createFormBuilder()
->add('title', TextType::class, [
'label' => 'Article title',
])
->getForm();
$config = $form->getConfig();
return new Response($config->getName());
}
}
?>
Результат выполнения кода:
"form"
Пример
Давайте получим тип данных формы и список опций через методы getType и getOptions объекта конфигурации:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
class FormController extends AbstractController
{
public function index(): Response
{
$form = $this->createFormBuilder()
->add('title', TextType::class, [
'label' => 'Article title',
])
->getForm();
$config = $form->getConfig();
$type = $config->getType()->getInnerType()::class;
$options = $config->getOptions();
return new Response($type . ' | ' . $options['label']);
}
}
?>
Результат выполнения кода:
"Symfony\Component\Form\Extension\Core\Type\TextType | Article title"
Пример
Давайте проверим, является ли поле обязательным, используя опцию required из конфигурации:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
class FormController extends AbstractController
{
public function index(): Response
{
$form = $this->createFormBuilder()
->add('title', TextType::class, [
'required' => false,
])
->getForm();
$config = $form->getConfig();
$required = $config->getOptions()['required'];
return new Response($required ? 'required' : 'not required');
}
}
?>
Результат выполнения кода:
"not required"
Смотрите также
-
класс
Form,
который представляет форму в Symfony -
метод
getName,
который возвращает имя формы -
метод
getData,
который возвращает данные формы -
метод
createView,
который создаёт представление формы для шаблона