Нашел решение проблемы сам. Все оказалось просто, нам нужно что бы
EntityType отображался как
CheckboxList. Для этого выставляет параметры
multiple и
expanded в
true. Далее в лейбле чекбокса выводим html тег img с прописанным атрибутом scr. Сам чекбокс скрываем, а на картинки через js вешаем обработчики событий.
Вот что получилось:
Вот код (я его вынес из формы в контроллер, что бы ограничить
choices фотографиями пользователя):
$form->add('photos', 'entity', array(
'class' => 'Flugo\PhotosBundle\Entity\Photo',
'multiple' => true,
'expanded' => true,
'choices' => $user->getPhotos(),
'attr' => [
'class' => 'photos-checkbox '
],
'choice_label' => function($choice, $currentChoiceKey) {
return sprintf('<img src="%s">', $choice->getPhoto130());
},
'choice_attr' => ['class' => 'hidden'],
));