我想自动创建用户并生成密码。我正在使用自定义表单类来显示名字、姓氏和电子邮件字段。用户名是根据电子邮件创建的,这没有问题。但是,在保存新用户时,我不能跳过密码验证并实现密码生成。
我应该创建自定义 validator.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>
我看到这里fos_user.validator.password.class
,也许我应该把自定义类放在这里
好的,我接近解决方案,使用 validator.xml 我可以更改一些验证器,但我不知道如何将验证器更改NotBlank
为Blank
. 尝试了这个片段但没有成功。
<class name="Application\Sonata\UserBundle\Entity\User">
<property name="plainPassword">
<constraint name="Blank">
<option name="groups">Registration</option>
</constraint>
</property>
</class>