Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在symfony表单中禁用必填字段?_Php_Symfony 3.2 - Fatal编程技术网

Php 如何在symfony表单中禁用必填字段?

Php 如何在symfony表单中禁用必填字段?,php,symfony-3.2,Php,Symfony 3.2,我有一个需要zipcode的地址表单类型。这是密码 class AddressType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('poBox', TextType::class, ['required' => false])

我有一个需要zipcode的地址表单类型。这是密码

class AddressType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('poBox', TextType::class, ['required' => false])
            ->add('roomNumber', TextType::class, ['required' => false])
            ->add('building', TextType::class, ['required' => false])
            ->add('street', TextType::class, ['required' => false])
            ->add('street2', TextType::class, ['required' => false])
            ->add('country', null, [
                "invalid_message" => "Country is required."
            ])
            ->add('state', null, [
                "invalid_message" => "State is required."
            ])
            ->add('city', null, [
                "invalid_message" => "City is required."
            ])
            ->add('zipCode', TextType::class, [
                "invalid_message" => "Postal Code given is not a valid value.",
                "required" => true,
                "constraints" => [
                    new NotBlank(["message" => "Postal Code is required"]),
                    new Length(["min" => 5, "max" => 5, "exactMessage" => "Postal Code must be a 5-digit code" ]),
                    new Regex(["pattern" => "/^[0-9]+$/", "message" => "Postal code must be numbers only"])
                ]
            ]);
    }
正如您所看到的,我只需要zipcode。我有另一种形式,我称之为人型。这个表单类型,我继承了AddressType类。但正如您所看到的,我禁用了必填字段(false)


每次提交表单时,我都会收到表单错误
需要邮政编码
。我已经为AddressType禁用了person类型表单中的必填字段。我无法将邮政编码的必填字段更改为false,因为其他表单类型(如CompanyType)需要邮政编码。有人在如何将必填字段更改为false时遇到这种问题吗?

您只需添加此代码即可

$builder->get('address')->setRequired(false);
$builder->get('address')->setRequired(false);