【发布时间】:2013-07-31 14:55:36
【问题描述】:
我得到了一个有一个字段的 Doctrine 实体:
/**
* @PHPCRODM\String()
* @Assert\MaxLength(255)
*/
protected $title;
是否可以为此字段生成的输入强制使用maxlength 属性,而无需手动指定?
【问题讨论】:
-
我对 PHPCRODM 一无所知,但如果在使用 ORM 时,您可以在注释中添加
@ORM\Column(type="string", length=255),它会给您预期的结果。 -
@cheesemacfly 错了,因为表单与实体本身几乎没有任何关系。断言没有正确的方法
-
@Flask 我在发表评论之前尝试过它,它与 Symfony 2.3 一起工作。如果在将字段添加到表单构建器时将类型留空或传递 null,它会转到实体以了解如何显示它(即:如果您有一个日期字段,它的显示方式与字符串的显示方式不同)。同样,如果实体定义中的字段可以为 null,则不会设置 HTML5 必需标志。
-
@cheesemacfly 它会检测您的字段类型。这与您的浏览器不理解所需的 HTML5 相同,但您的列中没有可以为空的 true。这将导致致命的 SQL 错误。
-
@Flask 我同意你的看法。但问题是关于在为字段生成的输入上使用
maxlength属性,据我所知,HTML5 验证是建立在字段属性上的,而不是在断言上。但正如您所提到的,它不会取代服务器验证。