В настоящее время я работаю над проектом Symfony2, который использует Sonata.
Предыдущие разработчики вносили изменения непосредственно внутри поставщиков, что, очевидно, является огромной ошибкой, поэтому я нахожусь в процессе рефакторинга. В настоящее время я застрял с некоторыми изменениями, которые были внесены в сопоставление ограничений из FOSUserBundle.
Это файл: /vendor/friendsofsymfony/user-bundle/FOS/UserBundle/Resources/config/validation/orm.xml
Они фактически отключили ограничение UniqueEntity для класса FOS\UserBundle\Model\User
на основе поля usernameCanonical
, например:
<?xml version="1.0" ?>
<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">
<class name="FOS\UserBundle\Model\User">
<!-- <constraint name="Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity">
<option name="fields">usernameCanonical</option>
<option name="errorPath">username</option>
<option name="message">fos_user.username.already_used</option>
<option name="groups">
<value>Registration</value>
<value>Profile</value>
</option>
</constraint> -->
<constraint name="Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity">
<option name="fields">emailCanonical</option>
<option name="errorPath">email</option>
<option name="message">fos_user.email.already_used</option>
<option name="groups">
<value>Registration</value>
<value>Profile</value>
</option>
</constraint>
</class>
</constraint-mapping>
Как я могу воспроизвести это изменение в переопределенном FOSUserBundle или переопределенном SonataUserBundle?