2016-09-01 4 views
0

Я пытаюсь сделать загрузку изображений обязательной. Я пробовал его на типе коллекции от @Assert\Valid который генерирующей ошибки Image is missing! на верхней части формы, т.е. ошибки кипящей затем я снял error bubbling, установив его false. После удаления ошибка bubbling Я не могу заполнить изображение отсутствующей ошибкой. Как я могу сопоставить ошибку с ее элементом формы, то есть images.Проверка загрузки изображений без использования @Assert

Помогите & предоставить мне возможные решения этой проблемы с помощью Symfony или jQuery. А также укажите, какой из них лучше всего & почему.

Entity: XYZBundle \ Entity \ Abc.php

 Class Abc 
    { 
     ..... 

     /** 
     * @JMS\Groups({"details"}) 
     * @JMS\Expose 
     * 
     *@Assert\Valid 
     * @var \Doctrine\Common\Collections\Collection 
     */ 
     private $images; 

     ..... 

FormType: XYZBundle \ Entity \ AbcType.php

 public function buildForm(FormBuilderInterface $builder, array $options) 
     { 
      ..... 

      ->add('images', CollectionType::class, array(
        'entry_type' => MediaType::class, 
        'label' => false, 
        'allow_add' => true, 
        'allow_delete' => true, 
        'by_reference' => false, 
        'prototype' => true, 
        'error_bubbling' => false, 

       )) 

      ..... 

ответ

0

Добавив следующий код в AbcController I Теперь я могу показать ошибку. И теперь я удалил @Assert\Valid из Entity (XYZBundle \ Entity \ Abc.php).

Контроллер: AbcController.php

$images = $form['images']->getData(); 
      $imageExist=false; 
      foreach ($images as $image){ 
       if(!empty($image->getFilename())){ 
        $imageExist=true; 
        break; 
       } 
      } 
      if(!$imageExist){ 
       $form['images']->addError(new FormError("Please upload at least one image.")); 
      } 

Единственное, что оставшееся является отображение ошибки только после того, как ее элемента формы.

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

  • Нет связанных вопросов^_^