【问题标题】:Validate username in Symfony2 form在 Symfony2 表单中验证用户名
【发布时间】:2014-02-14 13:22:51
【问题描述】:

我在 Symfony2 中有一个表单,管理员必须写下另一个用户的用户名。

如果用户名存在于我的数据库中,是否可以在发送表单之前检查?我使用教义。

谢谢!

【问题讨论】:

    标签: php forms validation symfony doctrine-orm


    【解决方案1】:

    您可以编写一个自定义约束,将其注入您的实体管理器并检查用户名是否存在。 See the documentation for creating a custom constraint here

    另一个选项是write a data transformer,它将用户名字符串转换为用户对象,这应该确保用户存在,如果她没有抛出 TransformationFailedException。这可能会更容易一些,因为文档中的示例已经将转换器创建为服务,并向您展示了如何注入实体管理器。

    此外,根据您的应用程序中有多少用户,您可以将用户名选项设置为entity choice type,并允许 symfony 创建一个下拉列表,其中包含您的所有用户。

    编辑: 抱歉,我错过了在您提交表单之前检查的部分。上面的想法仍然是您可以在服务器上实现的方式,但是对于前两个选项,您需要使用 Ajax 请求来测试用户名是否有效。

    【讨论】:

    • 非常感谢您的 cmets!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多