禁用 Symfony 2 类型中选项字段的后端验证

2022-08-31 00:19:37

是否可以对指定字段禁用后端(服务器端)验证?

Wnen Im 尝试使用动态加载的选项发送表单,我收到错误“错误:此值无效。

我认为symfony正在检查我的值是否在默认声明的列表(在我的情况下是它的空列表),如果没有,则返回false。


答案 1

这令人困惑,但这种行为与验证无关,因为它是由“ChoiceToValueTransformer”引起的,它确实在预先声明的列表中搜索条目。如果您的列表为空或要禁用转换器,则只需重置它即可。

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('yourField', 'choice', array('required'=>false));

    //more fields...

    $builder->get('yourField')->resetViewTransformers();
}

然后,您的自定义验证将介入(如果存在)。


推荐