link uvnitř komponenty – problém s předáním parametrů
- joska
- Člen | 20
mám v aplikaci komponentu BookList, starající se o výpis dat z DB do tabulky. Součástí šablony je odkaz pro stažení souboru. Nabídnutí ke stažení nabízí funkce Download ve tříde komponenty.
Nicméně použiji-li funkci link, funkce neobdrží žádné argumenty.
V souboru BookList.php mám funkci:
<script>
public function handleDownload($id,$name){
echo $id.$name;
die();
}
</script>
v šabloně template.php se pak odkazuji:
<script>
{$component->link('download!',array('name'=$item->name,'id'=>$item->id))}
</script>
($item->name a $item->id obsahují text a číslo, tam chyba není). Poradíte mi někdo prosím, kde je v mém přístupu chyba, nebo proč se komponentě proměnné nepředají?
- joska
- Člen | 20
znak > byl jen překlep, a děkuji za zkrácený zápis, nepoužíval jsem ho, protože jsem nejspíš udělal chybu a odkazoval se na presenter, odkud je komponenta volána, namísto na třídu komponenty. Nicméně ani zkrácený zápis nic neřeší. Když si ve funkci Download zavolám func_get_args(), nic mi nevrátí.
Jinak URL ve které se parametry předává je ?library-name=hodnota&library-id=862&do=library-download. Bylo by legitimní, brát si údaje z URL přes $this->getParam()?
- Rada
- Člen | 9
No.. Mě to dneska stálo asi 3h času a testování do zblbnutí…
V konstruktoru tvojí komponenty si dej odkaz na zavolání konstruktoru
rodičovské třídy…
Např…
<?php
/**
* Konstruktor tridy
* @param Bascet $bascet
*/
public function __construct(Bascet $bascet) {
parent::__construct();
$this->_bascet = $bascet;
}
?>
A pak by to mělo už fungovat :)
Editoval Rada (29. 5. 2010 18:19)