Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 扩展FOSUserBundle密码验证以要求特殊字符_Symfony_Fosuserbundle - Fatal编程技术网

Symfony 扩展FOSUserBundle密码验证以要求特殊字符

Symfony 扩展FOSUserBundle密码验证以要求特殊字符,symfony,fosuserbundle,Symfony,Fosuserbundle,我用的是FOSUserBundle。 我用附加的类变量实现了自己的用户实体。注册、登录和丢失的密码正常工作。:-) 我需要为密码验证添加额外的要求。 我在报纸上找到了一篇Symfony的文章。 本文介绍如何创建验证方法,并在validation.xml文件中使用回调约束引用它。 我已经实现了回调并更改了validation.xml,注册时一切正常 我还没有弄明白的是,如何通过丢失密码链接或更改密码页面使其用于密码更改 非常欢迎提供建议和文档指南 提前谢谢。好的。我需要做的是为我的用户包创建一个v

我用的是FOSUserBundle。 我用附加的类变量实现了自己的用户实体。注册、登录和丢失的密码正常工作。:-)

我需要为密码验证添加额外的要求。 我在报纸上找到了一篇Symfony的文章。 本文介绍如何创建验证方法,并在validation.xml文件中使用回调约束引用它。 我已经实现了回调并更改了validation.xml,注册时一切正常

我还没有弄明白的是,如何通过丢失密码链接或更改密码页面使其用于密码更改

非常欢迎提供建议和文档指南


提前谢谢。

好的。我需要做的是为我的用户包创建一个validate.xml文件,并使用与FOSUserBundle不同的组名。 还需要更新config.yml以指定我的组。 具体来说,我修改了config.yml:

fos_user:
    ...
    change_password:
        form:
            validation_groups: [myChangePassword]
在src/myProject/UserBundle/Resources/config/validation.xml中:

<constraint-mapping xmlns="http://symfony.com/schema/dic/constraint-mapping"
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xsi:schemaLocation="http://symfony.com/schema/dic/constraint-mapping
        http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
  <!--
   ! Password constraints:
   !-->
  <class name="FOS\UserBundle\Form\Model\ChangePassword">
    <property name="new">
      <constraint name="Regex">
        <option name="pattern">/[0-9!@#$%^*_-]+/</option>
        <option name="message">Must include at least one digit or !,@,#,$,%,^,*</option>
        <option name="groups">
          <value>myChangePassword</value>
        </option>
      </constraint>
      <constraint name="Length">
        <option name="min">8</option>
        <option name="max">254</option>
        <option name="minMessage">Must be at least eight characters</option>
        <option name="maxMessage">Too long</option>
        <option name="groups">
          <value>myChangePassword</value>
        </option>
      </constraint>
    </property>
  </class>
</constraint-mapping>

/[0-9!@#$%^*_-]+/
必须至少包含一位数字或!、@、#、$、%、^*
myChangePassword
8.
254
必须至少包含八个字符
太久
myChangePassword

希望这能为其他人节省一些时间。

您应该粘贴代码,人们会更好地帮助您。非常感谢。