Tvorba odkazu pomocí dat z databáze

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

Zdravím,
potřeboval bych poradit, protože už nevím jak dál. Mám uložené stromové menu v databázi i s odkazy, které mám v nette tvaru :Module:Presenter:View:action type=>.... A právě v tom type=> ... je problém, protože, když se snažím v Latte vypsat odkaz pomocí <a href="{plink $item->link}" ...></a> tak mi to vezme jen odkazy bez toho type a ostatní mi hlásí No route for :Module:Presenter:View:action type=>neco() (ano ty závorky na konci jsou správně, i když je v DB uložené nemám). Jde nějak předat url z databáze, aby to Nette korektně zpracovalo?

Edit : i když link uložím ve tvaru :Module:Presenter:View:action neco tak to hlásí to samé.

Předem díky Tomáš

Editoval TOMeek (2. 7. 2013 9:48)

vitkutny
Člen | 73
+
0
-

měl jsem stejný problém, nakonec jsem to zprovoznil rozdělením do více sloupců… link a link_id {plink $menu->link, id=>$menu->link_id}… kdyby tu nikdo na nic nepřišel můžeš to udělat takhle. Snad ale někdo zná lepší řešení :-)

llook
Člen | 407
+
0
-

Jasně, Latte to rozparsuje takhle:

  • {
  • plink
  • $this->link
  • }

Prostě bere celé $this->link jako pouze první parametr makra, tj. název presenteru.

Můžeš odkaz sestavit v presenteru a do šablony předávat URL.

Presenter:

$this->template->link = $this->link('Presenter', array('type' => ...));

Šablona:

<a href="{$link}">...</a>

A nebo tak, jak píše vitkutny:

<a n:href="$destination, type => $type">...</a>
TOMeek
Člen | 64
+
0
-

Zatím jsem to udělal tak, že si rozeberu to URL které mám uložené na hlavní část a na parametry a pak to jednotlivě vkládám do <a href={plink $master $param1, ... $paramx}>... protože u me neni jisty jak se parametr bude jmenovat nebo kolik jich tam bude. Kdyby bylo lepší (kradší) řešení tak budu jen rád.