Předávání parametrů komponentě

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

Zdarec,

pošlu si do latte nějaká data a pak chci aby se nějaká data poslala do komponenty… Kde je zakopán pes?

public function renderEditRecord($id){

	$this->template->values = $this->database->query('SELECT * FROM `users` WHERE `ID` = ?', $id);

}

Latte:

<table n:foreach="$values as $value">

    <tr><td>ID: {$value->ID}</td></tr>
    <tr><td>Name: {$value->Name}</td></tr>
    <tr><td>Surname: {$value->Surname}</td></tr>
    <tr><td>Email: {$value->Email}</td></tr>
    <tr><td>Age: {$value->Age}</td></tr>
    <tr><td>{control editForm $value->ID}</td></tr>

</table>

a kámen úrazu je s komponentou editForm. Já bych tak nějak čekal, že jí můžu poslat data…

protected function createComponentEditForm($id) {

     $form = new Form;

     $form->addTextArea('Name', 'Zadejte Nové ID:', $id)
             ->addRule(Form::MIN_LENGTH, "ID musí mít alespoň dva znaky", 2)
             ->addRUle(Form::MAX_LENGTH, "ID může mít maximálně patnáct znaků", 15);

     $form->addSubmit('Edit', 'Editovat')
         ->onClick[] = callback($this, 'EditForm');

     return $form;

 }

a dále… Můžu nějak rovnou v presenteru předat data (globální proměnnou) do controlleru? Přímo v metodě renderEditRecord($id) že bych si to ID uložil do $this->ID a pak ho prost2 použil v komponentě? Mi to právě nefungovalo (nezná proměnnou), tak to zkouším přes šablonu ale něco mám špatně.

johnnie
Člen | 54
+
+1
-

Ides nato zlym sposobom, vyskusaj sa inspirovat quickstarter guide, tuto je priklad prepisovania hodnot v formulari, odporucam nastudovat → https://doc.nette.org/…eating-posts

public function actionEdit($postId)
    {
    $post = $this->database->table('posts')->get($postId);
    if (!$post) {
        $this->error('Příspěvek nebyl nalezen');
    }
    $this['editForm']->setDefaults($post->toArray());
}

Editoval johnnie (5. 10. 2015 16:00)

DNDforever
Člen | 16
+
0
-

Díky moc, … aha… :D

Azathoth
Člen | 495
+
0
-

na posílání parametrů do komponent se používá multiplier https://doc.nette.org/…n/multiplier