我尝试验证不需要的字段,但只有0-50的有限长度。但Symfony总是生成必需的属性,如下面的代码。这使得用户必须填写必填字段。 这是服务器验证。此外,由于不需要的必需属性,我在客户端验证方面也遇到了问题。
我希望不使用js的解决方案。有人知道如何忽略symfony生成的必需属性吗?请帮我。谢谢
我的情况:我有一个slu field字段。它是由字段名称自动生成的(如果slug为空)或者用户可以自己创建。 在loadMetadata方法中,属性slug只有1个约束
$metadata->addPropertyConstraint('slug', new Length(array(
'min' => 0, 'max' => 50
)));
Html输出
<textarea id="category_slug"
name="category[slug]" required="required" class="form-control"></textarea>
学说映射
/**
* @var string
* @Gedmo\Slug(fields={"name"}, unique=false)
* @ORM\Column(name="slug", type="string", length=100, nullable=true)
*/
private $slug;
答案 0 :(得分:1)
如果表单是在表单类中描述的,则可以在类中包含它:
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Your\Bundle\Entity\Whatever',
'required' => false,
));
}
如果您只想影响单个字段,请在表单类中执行以下操作:
->add('slug', null, array(
'required' => false,
)
答案 1 :(得分:-2)
要在字段上禁用“必需”,您需要...
在准备好的javascript文档上,您可以使用以下代码:
$('#category_slug').removeAttr('required');