Добрый день.
Имеется класс формы, в котором есть коллекция файлов (код ниже), все работает как надо до тех пор, пока не пытаешься добавить файл с не разрешенным майм-тайпом или большего размера, то ошибки валидации не происходит (ассерт файла в самом низу)
# форма
class CreateMessageType extends BaseCreateMessageType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('body', 'wysiwyg_textarea', array(
'label' => false
));
$builder
->add(
'files', 'collection', array(
'type' => new MessageFileType(),
'allow_add' => true,
'by_reference' => false,
)
)
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'xxx\ForumBundle\Entity\Message',
'error_bubbling' => true,
'new_entry' => false,
));
}
}
# описание типа поля файлов
class MessageFileType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('file', 'file');
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'xxx\ForumBundle\Entity\MessageFiles',
'error_bubbling' => true,
'error_mapping' => array(
'upload' => 'file'
)
));
}
public function getName()
{
return 'file';
}
}
# ассерт файла
class MessageFiles
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* assert\File(
* maxSize = "3070k",
* mimeTypes = {
* "application/pdf",
* "application/x-pdf",
* "image/gif",
* "image/jpeg",
* "image/pjpeg",
* "image/png",
* "image/tiff",
* "image/vnd.wap.wbmp",
* "image/bmp",
* "image/x-bmp",
* "image/x-ms-bmp",
* "text/rtf",
* "application/rtf",
* "application/vnd.oasis.opendocument.text",
* "application/msword",
* "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
* },
* mimeTypesMessage = "Please upload a valid file"
* )
*
* assert\NotBlank()
*/
public $file;
# .........
}
PS - парсер съедает собаку перед ASSERT, но фактически в коде она есть