Načítání dat z modelu do presenteru

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

Zdravím, mohl by mi někdo poradit jak mám správně načítat data z modelu do presenteru. Potřebuji data načíst do formulářových prvků
v presenteru mám níže uvedené

class VypisyPresenter extends SecuredPresenter
{

public function actionEditace($id)
	{

		}



	/**
	 * Vytvoří formulář pro zakládání úkolů.
	 * @return Nette\Application\UI\Form
	 */
	protected function createComponentEditForm()
	{


		$form = new Form();
		$form->addText('zadatel', 'Žadatel:', 40, 100)
      ->setDefaultValue('TEST')
			->addRule(Form::FILLED, 'Je nutné zadat text úkolu.');

		$form->addSelect('rejstrik', 'Rejstřík:',VypisyModel::fetchRubrika('assoc'))
			->setPrompt('- Vyberte -')
			->addRule(Form::FILLED, 'Je nutné vybrat, komu je úkol přiřazen.')
			->setDefaultValue($this->getUser()->getId());

    $form->addText('cena', 'Cena:', 9, 9)
      ->setDefaultValue('TEST')
			->addRule(Form::FILLED, 'Je nutné zadat text úkolu.');
		$form->addSubmit('update', 'Aktualizovat');
		$form->onSuccess[] = callback($this, 'taskFormSubmitted');
		return $form;
	}




}

data z modelu získávám tímto zápisem

$EditovanyVypis=VypisyModel::fetchEvidovatUdaje($this->getParam('id'),$this->getUser()->getId());

Editoval Taps (27. 3. 2012 8:29)

nanuqcz
Člen | 822
+
0
-

Ahoj, mělo by fungovat

public function actionEditace($id)
{
    $EditovanyVypis = VypisyModel::fetchEvidovatUdaje($id, $this->getUser()->getId());
    $this['editForm']->setDefaults($EditovanyVypis);
}
Taps
Člen | 168
+
0
-

Díky, ještě bych potřeboval nastavit hodnotu i u $form->addSelect. VYpisování rubrik v pořádku funguje jen se neoznačí vybraná hodnota.

nanuqcz
Člen | 822
+
0
-

Viz dokumentace

$this['editForm']['nazev_selectu']->setDefaultValue($EditovanyVypis['nazev_sloupecku']);

// Tedy konkrétně třeba
$this['editForm']['category_id']->setDefaultValue($EditovanyVypis['category_id']);
pidiclovek
Člen | 91
+
0
-

Ahoj, doporučuju spolupráci s API kde je vidět vše potřebné, tedy že selecty či multiselecty a vlastně všechny ostatní fomulářové prvky dědí od BaseControlu, který má metodu setDefaultValue, což je to co hledáš.