【发布时间】:2014-12-02 18:10:51
【问题描述】:
我尝试验证一个非必填字段,但长度有限,为 0-50。但是 Symfony 总是生成所需的属性,如下代码。这使得用户必须填写必填字段。 这是服务器验证。此外,由于不需要的 required 属性,我在客户端验证方面也遇到了麻烦。
我希望有一个不使用 js 的解决方案。有人知道如何忽略 symfony 生成的所需属性吗?请帮我。谢谢
我的情况:我有一个蛞蝓场。它是由字段名称自动生成的(如果 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;
【问题讨论】:
-
当然。在页面加载后使用 js 从您的标签中删除所需的内容 =)
-
感谢您的回答。但是你知道不使用js的其他解决方案吗?
-
slug属性在实体文件中是否有任何约束?如果它被标记为NotBlank,您将获得required="required"属性。 -
我认为您唯一的选择是使用 JS,并且就 symfony2 文档而言,如果需要,它同时在服务器端和客户端。
-
只有一个约束 Length 和 Doctrine mapping nullable=true
标签: javascript php html validation symfony