2015-02-10 3 views
1

Я пытаюсь проверить форму в симфони 2.3 проекта, Так у меня есть поле «Клиент»:Validation Symfony2 Entity Выбор поля

$builder 
    ->add('customer', 
      'entity', 
      array('property'=> 'item', 
       'multiple' => true, 
       'expanded' => true, 
       'class' => 'OrdersBundle:Customer', 
       'required' => true, 'empty_value' => '', 
       'query_builder' => function(\Ella\OrdersBundle\Repository\CustomerRepository $er) { 
      return $er->createQueryBuilder('q')->andWhere("q.is_delete = 0")->orderBy('q.item', 'asc'); 
     })); 

Я пытаюсь вернуть ошибку, когда пользователь Didn «т выбрать что-нибудь, так что я могу это сделать:

properties: 
    customer: 
     - Choice: { min: 1, minMessage: 'message' } 

Или

properties: 
    customer: 
     - NotBlank: 
      message: message 

и другие вещи, но п othing работает, идея о том, что я делаю неправильно? В документ они говорят, мы могли бы использовать массив, но это не работает либо ...

На самом деле Symfony возвращение:

Либо «выбор» или «обратный вызов» должны быть указаны ограничения выбора

ответ

4

для Choice валидатора вам либо нужно указать массив доступных допустимых вариантов или функцию обратного вызова, из документации:

Это ограничение используется, чтобы гарантировать, что данное значение является одним из заданного набора допустимых вариантов. Он также может использоваться для проверки того, что каждый элемент в массиве элементов является одним из этих допустимых вариантов.

Что вы могли бы использовать, может быть Count валидатор:

customer: 
     - Count: 
      min: 1 
      max: 99 
      minMessage: "Min message" 
      maxMessage: "You cannot specify more than {{ limit }}" 
+0

Спасибо! Он отлично работает! – Krishnak

+0

Это не помогло мне http://stackoverflow.com/questions/35766535/symfony2-choice-field-validation-not-working – Najki

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