Добавление настроенных правил проверки в SonataUserBundle

Я установил SonataUserBundle в соответствии с документацией, и все работает нормально. За исключением того, что я не могу добавить пользовательские правила проверки.

Насколько я понимаю, новые правила должны быть добавлены в новую группу проверки, а затем обновлен файл config.yml, чтобы сказать SonataUserBundle (или FosUserBundle) добавить новые правила в последовательность проверки.

Я пробовал это по-разному, но новые правила, похоже, совсем не собраны ...

Вот конфигурация, которую я использую ...

(Ради этого примера я просто пытаюсь добавить ограничение NotNull в новое поле foo. На самом деле я хотел бы увидеть это много работы, а затем добавить больше правил проверки.)

Я добавил поле fooApplication\Sonata\UserBundle\Resources\config\doctrine\User.orm.xml и что все работает нормально, добавив поле foo кUser.php учебный класс.

# in Application\Sonata\UserBundle\Resources\config\doctrine\User.orm.xml
...
<field name="foo" type="string" length="100" nullable="true" />
...

В User.php у нас есть свойство с его геттерами и сеттерами:

// In Application\Sonata\UserBundle\Entity\User.php
// ...
/**
 * @var string
 */
private $foo;

/**
 * Set foo
 *
 * @param string $foo
 * @return User
 */
public function setFoo($foo)
{
    $this->foo = $foo;

    return $this;
}

/**
 * Get foo
 *
 * @return string 
 */
public function getFoo()
{
    return $this->foo;
}
// ...

Затем я добавил новое правило проверки в существующий файл validation.yml моего проекта:

Application\Sonata\UserBundle\Entity\User:
    properties:
        foo:
            - NotNull: { groups: [CustomGroup] }

(Обратите внимание, что я также пытался создать файлы validation.yml и validation.xml в Application \ Sonata \ UserBundle \ Resources \ config, но, похоже, это не имело никакого значения.)

В config.yml я говорю SonataUserBundle использовать мою новую CustomGroup для проверки:

sonata_user:
    # ...
    profile:
        form:
            validation_groups:  [CustomGroup, Profile, Default]

(Обратите внимание, что я также попытался добавить группу проверки на уровне fos_user (fos_user.profile.form.validation_groups: [CustomGroup, Profile, Default]) и добавление вsonata_user.profile.register.form.validation_groups: [CustomGroup, Registration, Default], но безрезультатно.)

И, для полноты, вот поле, добавленное в UserAdmin.php:

// In Application\Sonata\UserBundle\Admin\UserAdmin.php
protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
        ->with('General')
            // ...
            ->add('foo',        null, array('required' => false))
        ->end()
    ;
}

Итак ... что я пропустил? Форма UserAdmin не совпадает с формой профиля? (Хотя я также пытался обновить настройки формы регистрации) Или я могу установить правила проверки в другом месте?

Надеюсь, я только что пропустил что-то маленькое!

Заранее спасибо,

C

Ответы на вопрос(1)

Ваш ответ на вопрос