В ваше коде есть несколько проблем. Возможно, если вы устраните их, то все заработает.
1. У вас нет обработки загрузки файла. Его нужно сохранять вручную.
Пример:
https://github.com/symfony/symfony-demo/pull/286/files
В контроллере нужно обработать все загруженные файлы следующим образом:
foreach ($product->getImages() as $image) {
$uploadedFile = $image->getFile();
$uploadedFile->move('uploads/', $uploadedFile->getClientOriginalName());
$image->setPath('uploads/' . $uploadedFile->getClientOriginalName());
}
И почитайте внимательно
symfony.com/doc/current/cookbook/doctrine/file_upl...
Также посмотрите
api.symfony.com/3.0/Symfony/Component/HttpFoundati...
2. Во всех формах укажите data_class, и тогда не нужно будет создавать экземпляр Image вручную.
См.
symfony.com/doc/current/reference/forms/types/form...
3. Вам не следует делать вызов метода getForm() внутри buildForm
4. Начиная с симфони 2.8 объявление метода getName не нужно. Теперь формы идентифицируются по полному имени класса.