Manuální renderování inputu v containeru
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- chikeet
- Člen | 160
Ahoj,
snažím se v latte vyrenderovat container (Kdyby\Replicatoru) takto:
<tr n:foreach="$form['lecturers']->getContainers() as $lecturerContainer">
<td>{var $input = $lecturerContainer['name']}</td>
<td>{var $input = $lecturerContainer['remove']}
<button n:name="$input->name" class="btn btn-danger {$input->control->class}">
<span class="fa fa-trash"></span>
</button>
</td>
</tr>
ale narážím na problém s tím, že se v latte generuje tohle:
$_input = is_object($input->name) ? $input->name : end($this->global->formsStack)[$input->name];
což vede k chybě:
Component with name 'remove' does not exist.
Přijde mi zvláštní, že se testuje, jestli je objekt
$input->name
– to by měl být přece string, ne? Když se
pak input hledá podle názvu ve formu, tak se logicky nenajde, protože není
ve formu, ale zanořený v containeru. Když si input dumpnu, tak tam je.
Co dělám špatně? (Mám latte 2.4.4)
Editoval chikeet (2. 7. 2017 10:06)
- David Matějka
- Moderator | 6445
ahoj, testuje to z toho duvodu, ze tam nemusis predavat string, ale primo ten input objekt :) takze bude stacit
<button n:name="$input" ...
jinak se tam totiz musi dat plna cesta, tedy neco
jako lecturers-$i-remove