Symfony 使用用户注册表时删除密码检查

Symfony 使用用户注册表时删除密码检查,symfony,symfony-2.1,fosuserbundle,Symfony,Symfony 2.1,Fosuserbundle,我想创建用户并自动生成密码。我使用自定义表单类来显示名字、姓氏和电子邮件字段。用户名是基于电子邮件创建的,没有问题。但是,在保存新用户时,我不能跳过密码验证并实现密码生成 我应该创建customvalidator.xml吗 原文如下: <?xml version="1.0" encoding="UTF-8" ?> <container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://ww

我想创建用户并自动生成密码。我使用自定义表单类来显示名字、姓氏和电子邮件字段。用户名是基于电子邮件创建的,没有问题。但是,在保存新用户时,我不能跳过密码验证并实现密码生成

我应该创建customvalidator.xml吗

原文如下:

<?xml version="1.0" encoding="UTF-8" ?>

<container xmlns="http://symfony.com/schema/dic/services"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <parameters>
        <parameter key="fos_user.validator.password.class">FOS\UserBundle\Validator\PasswordValidator</parameter>
        <parameter key="fos_user.validator.unique.class">FOS\UserBundle\Validator\UniqueValidator</parameter>
    </parameters>

    <services>
        <service id="fos_user.validator.initializer" class="FOS\UserBundle\Validator\Initializer" public="false">
            <tag name="validator.initializer" />
            <argument type="service" id="fos_user.user_manager" />
        </service>
    </services>

</container>

似乎根本不可能重载已定义的约束。因此,许多人建议使用验证组来控制这一点。当然,对于本例来说,这是一个坏主意,因为有许多验证规则需要复制粘贴到新组中

出于这个原因,我决定为密码创建一些隐藏字段,并用一些随机值填充它,这些值将用于生成真实的密码

    <class name="Application\Sonata\UserBundle\Entity\User">

        <property name="plainPassword">
            <constraint name="Blank">
                <option name="groups">Registration</option>
            </constraint>
        </property>

    </class>