Problem s redirectom nette 2.0

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

Nette 2.0 php 5.2

Mam problem s redirectom ked do createComponent z tutorialu o formnularoch zadam nasledovny redirect tak po stlaceny ok tlacika mi server vyhodi chybu 500. V com robim chybu ?

public function createComponentPokusForm()
{
$form = new NForm();
$form->addText('name', 'Your name:');
$form->addSubmit('ok', 'Send')
        ->onClick[] = 'OkClicked'; // nebo 'OkClickHandler'
$form->addSubmit('cancel', 'Cancel')
        ->setValidationScope(FALSE)
        ->onClick[] = 'CancelClicked'; // nebo 'CancelClickHandler'

// zavolá obslužné handlery (pozn. od verze 0.9.1)
$form->fireEvents();

// obslužné handlery:
function OkClicked(SubmitButton $button)
{
        // submitted and valid
        save($form->getValues());
        redirect('Homepage:default');
}

function CancelClicked(SubmitButton $button)
{
        // process cancelled
        redirect('Pokus:show2');
}
    return $form;
  }

A taktiez by som sa chcel spytat aky je rozdiel ked pouzijem NForm alebo NAppForm dakujem.

Editoval ricco24 (30. 1. 2011 13:34)

Aurielle
Člen | 1281
+
0
-

Evidentně nechápeš objektové programování. Nejdříve si o něm něco nastuduj a až pak začni využívat Nette.

dakota
Člen | 148
+
0
-

Správne má byť:

protected function createComponentPokusForm()
{
	$form = new NAppForm;
	$form->addText('name', 'Your name:');
	$form->addSubmit('ok', 'Send')
 	     	  ->onClick[] = callback($this, 'OkClicked');
	$form->addSubmit('cancel', 'Cancel')
		->setValidationScope(FALSE)
		->onClick[] = callback($this, 'CancelClicked');
	return $form;
 }

// obslužné handlery:
public function OkClicked(NSubmitButton $button)
{
        // submitted and valid
        $this->model->save($button->getForm()->getValues());
        $this->redirect('Homepage:default');
}

public function CancelClicked(NSubmitButton $button)
{
        // process cancelled
        $this->redirect('Pokus:show2');
}

Editoval dakota (30. 1. 2011 18:52)

dakota
Člen | 148
+
0
-

ricco24 napsal(a):

A taktiez by som sa chcel spytat aky je rozdiel ked pouzijem NForm alebo NAppForm dakujem.

NAppForm – ak sa formuláre používajú v spojení s presenterom alebo komponentov. V createComponent treba vždy použiť AppForm.

NForm – ak používaš formuláre samostatne.

https://doc.nette.org/cs/forms

Editoval dakota (30. 1. 2011 13:53)