Formulář jako komponenta – nefunguje getParemetr
- Petr64
- Člen | 22
Možná hloupý dotaz.
Chtěl bych zobrazit Formulář z továrničky a naplnit ho předdefinovanými
hodnotami k editaci.
Zasekl jsem se na tom, že v presenteru nevyčtu $id abych
mohl z modelu získat hodnoty.
Parametr z šablony lze získat pomocí getParametr – to mi ale
nefunguje.
(link )
Mám presenter kde zobrazím šablonu pošlu do ní $id :
Když udělám dump:
$id=$this->getParameter('id');
dostanu $id = null
Výpis všech parametrů:
$x=$this->getParameters();
dostanu pole:
action ⇒ „carType“ (7)
id ⇒ null
declare(strict_types=1);
namespace App\MP\Presenters;
use Nette;
final class MpPresenter extends \App\MP\Presenters\BasempPresenter
{
private $formFactory;
public function __construct(\App\MP\Components\MpFormFactory $formFactory)
{
parent::__construct();
$this->formFactory = $formFactory;
}
public function renderCarType($id='FA1') {
$this->template->id=$id;
}
public function createComponentCarTypeForm() {
// tady potřebuju někde sebrat id z šablony která je už vykreslená
$id=$this->getParameter('id'); //v komponentě nelze předat parametr z šablony
dump($id);
$x=$this->getParameters();
dump($x);
die;
$typ=$this->mp->getCarType('id');
$form= $this->formFactory->createComponentCartypeForm($typ);
return $form;
}
a šablonu kde potřebuju zobrazit formulář s hodnotami k editaci:
{block #content}
<h2>Typ vozidla {$id}</h2>
<br>
{control carTypeForm}
- Petr64
- Člen | 22
stepos2 napsal(a):
private $id; public function actionCarType($id = 'FA1') { $this->id = $id; } public function renderCarType($id = 'FA1') { $this->template->id = $this->id; } public function createComponentCarTypeForm() { dump($this->id); }
Díky za rychlou reakci. Funguje to. Už jsem to vyřešil persistentním
parametrem, ale tohle je krásné.
Budu si muset nastudovat co ta metoda actioCarType znamená. Mám otázku.
Pokud se spustí ještě před renderCarType musí mít parametr když se v ní
nepoužije?