Latte makrá {link} a {plink} nespracúvajú správne parametre
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Erik Ferčák
- Člen | 10
Myslím, že krátka ukážka to vysvetlí.
Nette 0.9.1
{assign $param => 'page'}
{link this, $param => 3} // /?page=3
Nette 1.0 alpha
{assign $param => 'page'}
{link this, $param => 3} // /?param=3
- Erik Ferčák
- Člen | 10
uestla napsal(a):
V Nette 1.0 alpha zkus následující:
{var param => 'page'} {link this, "$param" => 3}
Uvodzovky pomohli, ale je to neintuitivne.
- David Grudl
- Nette Core | 8228
Tahle chování tam je záměrně, protože zápis
{link this, $param => 3}
není moc obvyklý a spíš se zdá,
že ho člověk použije pod dojmem, že dělá
{link this, param => 3}
.
Ale je fakt, že „tak chytrý“ by asi framework být neměl. Mám to odstranit? Nebudou s tím nějaké problémy?
- Patrik Votoček
- Člen | 2221
<OT> já asi půjdu dělat kávovar… když už je je i framework chytřejší než já…</OT>
$odstranit++;
- Patrik Votoček
- Člen | 2221
Je v nich rozdíl.
{link this, param => 3}
// se přeloží jako
$control->link("this", array('param' => 3);
//kdežto
{link this, "$param" => 3}
// se přeloží jako
$control->link("this", array("$param" => 3);
// pokud je tedy v šabloně nastavena proměnná `$param = "foo"` tak to ve skutečnosti je
$control->link("this", array('foo' => 3);
snad jsem se do toho moc nezamotal…
- David Grudl
- Nette Core | 8228
V poslední revizi už by mělo fungovat {link $var => 123}
dle očekávání.