Во-первых, вам необходимо создать действительный объект из файла по умолчанию.
Для этого используйте Symfony\Component\HttpFoundation\File.
Использование: $file = new File('path/of/your/default/file');
Затем вы должны обновить свою форму до того, как привязка данных выполняется.
Для этого у вас есть два решения:
1- Используйте FormEvent
, чтобы вручную установить файл, если поле равно null. (например, PRE_SUBMIT
и POST_SUBMIT
)
2- Используйте в вашем объекте крюк prePersist/preUpdate. (Не включает в себя перемещение вашей логики, не привязанное к нему свойство «вложение» должно существовать в вашей организации)
Для варианта 1 см. Главу поваренной книги Dynamic form modification и найдите присвоенное событие (документация предоставит информацию, чтобы выбрать его).
Для 2, см. Главу документации доктрины Events.
Что-то вроде следующего должен делать эту работу:
/**
* @ORM\HasLifecycleCallbacks
*/
class YourEntity {
/**
*
* @ORM\PrePersist
* @ORM\PreUpdate
*/
public function manageFile()
{
if ($this->attachment === null) {
$file = new File('path/of/your/default/file');
$this->setAttachment($file);
}
}
}
Я надеюсь, что это достаточно для вас.
Спасибо. Фактически '$ file = new File ('путь/of/ваш/default/file '); 'было достаточно, чтобы сделать все)) – Jack