Reupload obrázků z databáze

Jojo32
Člen | 8
+
0
-

Zdravím. Je to asi trochu hloupý problém, ale chtěl bych se zeptat na nejlepší řešení nahrávání obrázků. Respektive na jejich „reupload“.
Obrázky nahrávám jednoduše přes formulář

public function createEditForm()
	{
		$form = new Form();
		$form->addUpload('avatar', 'Profil');
		$form->addSubmit('send', 'Send');
		return $form;
	}

, kdy novej upload funguje v pohodě. Ale když chci editovat, profil uživatele, tak si posílám do formuláře hodnoty přes setDefaults.

public function actionEdit($id)
	{
		$user = $this->userManager->getUser($id);
		$this['editForm']->setDefaults($user->toArray());
	}

A u všeho to funguje v pohodě. Jen problém je u uploadu souboru. V databázi mám pod ‚avatar‘ uložený název posledního nahraného souboru, ale když dám edit a žádný obrázek neuploaduju je ‚avatar‘ vždycky NULL.
A při updatu hodnot v databázi, kde updatuju všechny $vals z formuláře mi smaže poslední uložený soubor a hodnota je taky NULL.

Dá se tenhle problém nějak elegantně vyřešit? Mně napadlo akorát odpodmínkovat a pak následný update do databáze dělat pro konkrétní hodnoty z formuláře. Nebo lepší použít nějakou už existující komponentu pro nahrávání, která to už řeší?

Děkuji za každou případnou radu!

pavel_4
Člen | 13
+
0
-

To je normální chování. Do upload nemůžeš nastavit hodnotu. Můžeš tam dát třeba podmínku a pokud je upload prázdný, tak ho odstranit z values před uložením.