仅当我正在编辑时,才将表单中的字段设为可选字段



我为两个操作(创建和编辑(创建了一个symfony表单,并且我只想在编辑时将表单的一个字段设置为可选字段

假设您使用的是data_class和条令:

public function buildForm(FormBuilderInterface $builder, array $options)
{
$object = $options['data'] ?? null;
$isEdit = $object && $object->getId();
$builder->add('name', null, [
'required' => !$isEdit,
...
]);
}

在创建时,表单要么不包含基础对象,要么不包含id的基础对象,因为在构建表单时,对象尚未保存到数据库中。

在编辑时,表单包含一个id为的底层对象

因此,从具有$options['data']的表单中获取底层对象,并检查它是否为空并具有id。

如果存在一个id为的对象,我们知道我们正在编辑($isEdit将为true(,并且可以使用它来设置所需的属性。

最新更新