il campo file non viene popolato di sicuro, non ci puoi mica scrivere, quindi che succede se lo metti required? che lo devi reinserire sempre, ma se non lo reinserisci quando salvi lui che fa? te lo cancella.
questo è il codice del field tipo file
return '<input type="file" name="' . $this->name . '" id="' . $this->id . '" value=""' . $accept . $disabled . $class . $size
. $onchange . $required . ' />';
come vedi value e sempre vuoto, quindi devi lavorare a livello del model nella funzione save dove dovrai capire se un file e stato caricato precedentemente ed aggiungerlo ai dati da salvare.
Se lo vuoi invece come obbligatorio devi intervenire a livello del model nella funzione getForm
if(!empty($form->getValue('file'))){
$form->setFieldAttribute('
file','required',false);
}
ti toglie il required se c'e un valore di gia
pero ora che succede non ti salva piu i dati xche c'e un campo required quindi devi togliere il required nel controller nel metodo save prima di validare la form
edit qui, basta la modifica di prima
tanto anche il controller fa getForm ed il procedimento è lo stessonon è facile fare questa cosa se non conosci bene la struttura ne sono consapevole ma magari prova