setDefault – naplnění jen některých hodnot

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
MW
Člen | 626
+
0
-

Zdravím,

Prosím o radu.
mám editační formulář, který je naplněný hodnotami. Do něj posílám pole s hodnotami, a já potřebuji naplnit(přepsat stávající) a to jen některé hodnoty a ostatní nechat s původní.

Jak toho docílit jinak než ručně u každé controly?

Toto mě sice naplní hodnoty, ale ty co nejsou v poli uvedené to vymaže.

If($this->data){
		$form->setDefaults($this->data->toArray(array(
							'in' => 'ic',
							'tin' => 'dic',
							'company' => 'name',
							'street' => 'street',
							'no' => 'no',
							'ono' => 'ono',
							'city' => 'city',
							'zip' => 'zip',
							      )
							));
	    }
Casper
Člen | 253
+
0
-

Mělo by stačit využít druhý parametr metody setDefaults: $erase. Takže zavoláš tuhle metodu 2x – jednou pro ty co chceš přepsat a podruhé pro ty, co nechceš.

MW
Člen | 626
+
0
-

Diky !
Nenapadlo me volat to 2× …

Toto se chova mravně … a ani nemusim meni $erase.

If($this->data){

		$clients = $this->context->clientsModel->getClients($this->getParam('id'));
		$form->setDefaults($clients);
		$form->setDefaults($this->data->toArray(array(
							'in' => 'ic',
							'tin' => 'dic',
							'company' => 'name',
							'street' => 'street',
							'no' => 'no',
							'ono' => 'ono',
							'city' => 'city',
							'zip' => 'zip',
							      )
							));
	    }