Метод getOption класса FormBuilder
Метод getOption класса FormBuilder
возвращает значение опции формы по её имени.
Первым параметром передаётся имя опции в виде
строки. Если опция не была задана, метод вернёт
значение null.
Метод удобен, когда нужно прочитать настройку формы уже после её создания, например внутри сервиса или другого строителя формы.
Синтаксис
$formBuilder->getOption(string $name): mixed
Пример
Давайте создадим форму с опцией attr
и прочитаем её через метод getOption:
<?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;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/form', name: 'article_form')]
public function form(): Response
{
$builder = $this->createFormBuilder(null, [
'attr' => ['class' => 'abcde']
]);
$res = $builder->getOption('attr');
return new Response(json_encode($res));
}
}
?>
Результат выполнения кода:
{"class":"abcde"}
Пример
Давайте создадим форму с опцией method
и прочитаем её значение:
<?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\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/form-method', name: 'article_form_method')]
public function formMethod(): Response
{
$builder = $this->createFormBuilder(null, [
'method' => 'POST'
]);
$res = $builder->getOption('method');
return new Response($res);
}
}
?>
Результат выполнения кода:
"POST"
Пример
Давайте прочитаем опцию, которая не была задана:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/form-unknown', name: 'article_form_unknown')]
public function formUnknown(): Response
{
$builder = $this->createFormBuilder(null, [
'attr' => ['class' => 'abcde']
]);
$res = $builder->getOption('unknown_option');
return new Response(var_export($res, true));
}
}
?>
Результат выполнения кода:
NULL
Смотрите также
-
класс
FormBuilder,
который строит формы в Symfony -
метод
add,
который добавляет поле в форму -
метод
get,
который возвращает поле формы по имени -
метод
getForm,
который возвращает готовый объект формы