Symfony2 переопределяет проверку модели

я использую пакет пользователя FOS и хочу переопределить файл проверки FOS/UserBundle/Resources/config/validaiton.xml:

<constraint name="FOS\UserBundle\Validator\Unique">
    <option name="property">usernameCanonical</option>
    <option name="message">fos_user.username.already_used</option>
    <option name="groups">
        <!-- <value>Registration</value> -->
        <value>Profile</value>
    </option>
</constraint>

username is not in my Registration form (I just set it to hidden), that's the validation should not produce any error...

Может быть, есть лучший способ удалить имя пользователя из формы...


person Charles    schedule 29.03.2012    source источник


Ответы (2)


Чтобы правильно удалить поле имени пользователя формы, вы должны переопределить RegistrationFormType, создав свой собственный и расширив его из исходного FOSUserBundle.

<?php
namespace Acme\UserBundle\Form\Type;
use Symfony\Component\Form\FormBuilder;
use FOS\UserBundle\Form\Type\RegistrationFormType as BaseType;

class RegistrationFormType extends BaseType
{
    public function buildForm(FormBuilder $builder, array $options)
    {
        $builder->add('email', 'email')
                ->add('plainPassword', 'repeated', array('type' => 'password'))

                // your other custom fields, if any.

    }
}

Теперь вы должны объявить переопределенную форму как службу, а затем сообщить файлу конфигурации FOSUserBundle, что вы используете переопределенную форму. Вот полная документация.

person Manu    schedule 03.04.2012
comment
сори, это не работает. Он по-прежнему запрашивает имя пользователя. Так что я думаю, что проверка все еще активна. - person tester; 19.07.2013

Вы можете поместить информацию о проверке сущности в любой validation.yml файл. Так что вы можете сделать

#validation.yml
FQCN\Of\User\Entity:
  constraints:
    - FOS\UserBundle\Validator\Unique:
        property: usernameCanonical
        groups: [Profile]
        message: fos_user.username.already_used


  properties:
  # property validations here
person Mun Mun Das    schedule 29.03.2012