【问题标题】:Symfony2: @Assert\MaxLength and input maxlength attributeSymfony2:@Assert\MaxLength 和输入 maxlength 属性
【发布时间】: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 验证是建立在字段属性上的,而不是在断言上。但正如您所提到的,它不会取代服务器验证。

标签: forms symfony doctrine


【解决方案1】:

显然,PHPCRODM 不接受这样的选项。伤心... :(

[创建错误] 在属性 [...]\Article::$title 上声明的注释 @PHPCRODM\String 没有名为“length”的属性。可用属性:类型、翻译、名称、属性、多值、关联、可空

我有空的时候应该创建一个 PR。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-29
    • 2012-05-20
    • 1970-01-01
    • 2020-03-22
    • 1970-01-01
    • 2012-07-15
    相关资源
    最近更新 更多