2016-03-15 4 views
0

У меня возникли проблемы с проверкой в ​​Sonata Admin.Проверка правильности сонаты

В интерфейсе для клиентов у меня есть две формы: Регистрация и профиль. На основе FOSUser. Правила проверки в:

SRC/UserBundle/Ресурсы/конфигурации/validation.yml

Есть две группы проверки для каждой формы. Для меня предпочтительнее использовать бэкэнд для использования этих правил и добавить еще одну группу, такую ​​как AdminProfileEdit, потому что есть различия с формами frontend. Но я не могу понять, как настроить? В документации я прочитал о inlineValidation - добавить в класс UserAdmin метод

/** 
* @param ErrorElement $errorElement 
* @param mixed $object 
*/ 
public function validate(ErrorElement $errorElement, $object) 
{ 
    $errorElement 
     ->with('profile.firstname') 
      ->assertNotBlank() 
     ->end() 
     .... 
    ; 
} 

, но для меня это плохое решение, чтобы иметь 2 конфиги проверки. В https://sonata-project.org/bundles/admin/2-0/doc/reference/conditional_validation.html Я не могу найти хорошее объяснение, как проверить бэкэнд-форму.

В Сонате \ AdminBundle \ Admin \ AdminInterface метод проверка помечена как устаревшие:

  • @deprecated эта функция не может быть стабильной, использовать пользовательский валидатор,
  • функция будет удалена с Symfony 2.2

что это значит? И как проверить? Может кто-нибудь написать шаг за шагом, что делать? Даже какие методы или конфигурации мне нужно иметь?

Пожалуйста, помогите кому-то, мне нужно быстро выполнить задачу, и у нас нет плана или решения.

ответ

0

Вы можете определить группу проверки для администратора и указать его в качестве form option in the admin class:

protected $formOptions = array(
    'validation_groups' => array('SomeGroup'), 
); 
+0

I судимого это. В классе администратора: public function getFormBuilder() { $ this-> formOptions ['data_class'] = $ this-> getClass(); $ options = $ this-> formOptions; $ options ['validation_groups'] = 'AdminProfile'; $ options ['cascade_validation'] = true; $ formBuilder = $ this-> getFormContractor() -> getFormBuilder ($ this-> getUniqid(), $ options); $ this-> defineFormBuilder ($ formBuilder); return $ formBuilder; } и добавлена ​​группа в конфигурацию validation.yml. Но форма сохраняется без ошибок проверки, даже они должны быть. – dmma

+0

Я не понимаю, почему в backend validation.yml не работает. на интерфейсе все нормально – dmma

Смежные вопросы