【问题标题】:Symfony Validator Standalone - HTML AttributesSymfony Validator Standalone - HTML 属性
【发布时间】:2023-03-14 15:18:02
【问题描述】:

我自己使用 SF2 表单和验证器包。无论如何,是否可以从使用 symfony 验证器创建的注释中生成 HTML 属性?例如:

转换这个 -

/**
 * @var
 * @Assert\Length(min="2", max="2")
 */
protected $state;

进入 HTML 代码

<input type="text" maxlength="2" ... >

通常,我知道在 SF2 中通过在 Doctrine 注释中设置字符串的大小来设置它,但我使用 Aura.SQL 来处理与数据库的交互。

感谢您提供任何信息!

【问题讨论】:

    标签: php validation symfony doctrine-orm symfony-forms


    【解决方案1】:

    好吧,根据documentation,当您省略 add() 方法的第二个参数(或者如果您将 null 传递给它)时,“猜测”就会被激活。

    如果您使用此功能,Symfony 将尝试根据验证元数据(和原则信息)猜测字段的“类型”和多个字段选项的正确值。

    因此,理论上,如果您省略第二个参数或将null 传递给它,它应该会给您预期的输出(它会在输出的input 中呈现html5 属性)。

    如果由于任何原因它不起作用,您始终可以在 add 方法中强制其呈现(如果存在,它也会覆盖任何猜测):

    ->add('state', null, array('attr' => array('minlength' => 2,'maxlength' => 2)))
    

    甚至在树枝模板中:

    {{ form_widget(form.state, {'attr': {'maxlength' : 2, 'minlength' : 2 } }) }}
    

    【讨论】:

    • 我花了一天剩下的时间,才知道 Validator 库有自己的猜测器。我必须将它作为表单扩展名包含在内,这减少了打字。在我这样做之后,我按照您的建议进行了操作,将第二个参数设置为 NULL,它起作用了!谢谢!
    【解决方案2】:

    我认为您正在寻找的东西不存在。 顺便说一句,你可以通过创建自己的form type guesser来实现它

    【讨论】:

      猜你喜欢
      • 2016-03-19
      • 1970-01-01
      • 2021-08-07
      • 2018-02-22
      • 1970-01-01
      • 2015-08-23
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多