Метод remove класса Form
Метод remove класса Form удаляет поле из формы.
Первым параметром передаётся имя поля, которое нужно удалить.
Метод возвращает объект формы Form, что позволяет
выстраивать цепочку вызовов. Если поля с таким именем нет,
метод просто ничего не делает.
Синтаксис
$form->remove(string $name);
Пример
Давайте создадим форму с двумя полями и удалим одно из них:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentFormExtensionCoreTypeTextType;
use SymfonyComponentFormExtensionCoreTypeSubmitType;
use SymfonyComponentFormExtensionCoreTypeIntegerType;
use SymfonyComponentFormExtensionCoreTypeFormType;
class FormController extends AbstractController
{
public function index(): Response
{
$builder = $this->createFormBuilder();
$builder->add('name', TextType::class);
$builder->add('age', IntegerType::class);
$builder->add('save', SubmitType::class);
$form = $builder->getForm();
$form->remove('age');
foreach ($form->all() as $name => $field) {
echo $name . "\n";
}
return new Response();
}
}
?>
Результат выполнения кода:
"name"
"save"
Пример
Давайте удалим поле во вложенной форме:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentFormExtensionCoreTypeTextType;
use SymfonyComponentFormExtensionCoreTypeIntegerType;
use SymfonyComponentFormExtensionCoreTypeFormType;
class FormController extends AbstractController
{
public function index(): Response
{
$builder = $this->createFormBuilder();
$builder->add('title', TextType::class);
$builder->add('count', IntegerType::class);
$form = $builder->getForm();
$form->remove('count');
if ($form->has('count')) {
echo "count exists";
} else {
echo "count removed";
}
return new Response();
}
}
?>
Результат выполнения кода:
"count removed"