Метод remove
Метод remove класса FormBuilder удаляет поле из формы.
Первым параметром передаётся имя поля, которое нужно удалить.
Метод возвращает объект FormBuilder, поэтому его можно
использовать в цепочке вызовов.
Синтаксис
$builder->remove(string $name)
Пример
Давайте создадим форму с двумя полями и удалим одно из них:
<?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\SubmitType;
class ArticleController extends AbstractController
{
public function index(): Response
{
$form = $this->createFormBuilder()
->add('title', TextType::class)
->add('body', TextType::class)
->add('save', SubmitType::class)
->remove('body')
->getForm();
return $this->render('article/index.html.twig', [
'form' => $form->createView(),
]);
}
}
?>
В результате форма будет содержать только поля title и save,
а поле body будет удалено.
Пример
Давайте проверим, что поле действительно удалено с помощью метода has:
<?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()
->add('title', TextType::class)
->add('body', TextType::class)
->remove('body');
$res = $builder->has('body');
return new Response($res ? 'true' : 'false');
}
}
?>
Результат выполнения кода:
"false"
Смотрите также
-
класс
FormBuilder,
который строит форму -
метод
add,
который добавляет поле в форму -
метод
has,
который проверяет наличие поля -
метод
get,
который возвращает поле по имени