ユーザーを作成し、パスワードを自動的に生成したい。名、姓、および電子メール フィールドを表示するために、カスタム フォーム クラスを使用しています。ユーザー名は電子メールに基づいて作成され、これには問題はありません。ただし、新しいユーザーを保存するときに、パスワードの検証をスキップしてパスワード生成を実装することはできません。
カスタム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 を使用していくつかのバリデータを変更できますが、バリデータを .xml に変更する方法がわかりませNotBlank
んBlank
。このスニペットを試してみましたが成功しませんでした。
<class name="Application\Sonata\UserBundle\Entity\User">
<property name="plainPassword">
<constraint name="Blank">
<option name="groups">Registration</option>
</constraint>
</property>
</class>