Php 如何在symfony表单中禁用必填字段?
我有一个需要zipcode的地址表单类型。这是密码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])
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);