Добавление настроенных правил проверки в 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