$presenter->link(), {link}, {plink} rozdíl
- simPod
- Člen | 383
Chci se zeptat, jaky je rozdil mezi temito zapisy:
<a href="{$presenter->link('this',array('page'=>2))}">{$product->product_name}</a>
<a href="{link 'this', array('page'=>2)}">{$product->product_name}</a>
<a href="{plink 'this', array('page'=>2)}">{$product->product_name}</a>
První funguje, druhy a treti pise
error: Unable to pass parameters to action 'blablabla', missing corresponding method.
Diky
- Vojtěch Dobeš
- Gold Partner | 1316
První a třetí zápis by měl vést k totožnému výsledku. Druhý zápis by byl totožný s:
$control->link('this', array('page' => 2));
Nevím, jestli to může i způsobovat onu chybu, ale destinace (v tomto
případě this
) se nikdy neuvádí s uvozovkama okolo. Pro
úplnost, {link}
se používá v základních šablonách pohledů
chová úplně stejně jako {plink}
, protože v nich
$control == $presenter
. {plink}
existuje kvůli
komponentám (extends UI\Control
), kde $control
je
v šabloně instance komponenty, takže odkaz na presenter je třeba volat nad
$presenter
, od čehož je právě {plink}
.
Editoval vojtech.dobes (6. 5. 2012 15:24)
- Vojtěch Dobeš
- Gold Partner | 1316
Zkus ukázat odpovídající presenter/komponentu, ke které ta šablona patří.
- simPod
- Člen | 383
v podst. se jedna jen o toto:
{block content}
<a href="{plink 'this', array('page'=>2)}">test</a>
{/block}
<?php
namespace FrontModule;
class MyPresenter extends BasePresenter {
/** @persistent */
public $slug;
/** @persistent */
public $page;
function startup() {
parent::startup();
$this->setView('default');
}
function renderDefault() {
}
}
- Vojtěch Dobeš
- Gold Partner | 1316
Aha, tak určitě stačí použít {link}
(protože je to
šablona pro view, nikoliv pro komponentu), respektive n:href
, což
je jen atributová
kratší varianta.
Jenom netuším, proč ti to hlásí blablabla
, kde se ten
řetězec bere? To z tvého kódu nevyplývá.
- Tetragramat
- Člen | 3
duke napsal(a):
Nepíše se:
{plink 'this', array('page'=>2)}
ale
{plink this, page => 2}
Bylo by dobré tohle doplnit do dokumentace, protože tam chybí. Právě jsem řešil stejný problém a po hodině zkoušení různých možností, hledání v dokumentaci a na foru jsem našel tuhle spásu.