jak v MicroPresenteru vyrenderovat formulář

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

čau lidi!
Trápim se s tim, jak vyrendrovat v šabloně MicroPresenteru formulář ale netušim jak na to:

<?php
$router[] = new Route('create', function($presenter) {
	$template = $presenter->createTemplate();
	$template->setFile(__DIR__ . '/templates/create.latte');

	// nainstalování maker moc nepomůže :(
	$compiler = $template->getLatte()->getCompiler();
	Nette\Bridges\ApplicationLatte\UIMacros::install($compiler);
	Nette\Bridges\FormsLatte\FormMacros::install($compiler);

	$form = new Nette\Forms\Form;
	// ...

	$template->setParameters([
		'createForm' => $form,
	]);

	return $template;
});
?>

latte:

{control createForm}

hlásí Undefined variable: _control :-\

díky..

Jan Tvrdík
Nette guru | 2595
+
+1
-

Zkusil bych {control $createForm} nebo {$createForm}.

hejdav
Člen | 50
+
0
-

jak psal Honza Tvrdík, lze formuláře vyrendrovat buď {control $form} nebo {form $form}...{/form} (všimněte si dolaru), dále na co si dát pozor:

  • použít Nette\Forms\Form, nikoliv UI\Form
  • nainstalovat makra – buď UIMacros pro použítí {control} nebo FormMacros pro použití {form}
  • chcete-li použít události, třeba $form->onSuccess[], musíte si ručně na formu zavolat $form->fireEvents().