Problem s: Invalid link: No route v n:href makru
- figurluk
- Člen | 61
V presenteri Homepage mam metodu:
<?php
public function renderCongres($congresID,$congresCode, $congresName, $actualPage)
?>
V presenteri User posielam do template takyto array linkov
<?php
$users = $this->database->table($congresCode.'_participants')->select('name, surname')->where('id = ?', $userID)->limit(1);
$userName;
$userSurname;
foreach ($users as $user ) {
$userName = $user->name;
$userSurname = $user->surname;
}
$link = 'Homepage:congres '.$congresID.', '.$congresCode.', '.$congresName.', 1';
$this->template->breads =
array('Kongresy' => 'Homepage:default',
$congresName => $link,
$userName.' '.$userSurname => ''
);
?>
a latte cast ktora to prijima vyzera takto
<?php
<ol class="breadcrumb" n:if="$user->loggedIn">
{foreach $breads as $name => $link}
{if $link==''}
<li class="active">{$name}</li>
{else}
<li><a n:href="$link">{$name}</a></li>
{/if}
{/foreach}
</ol>
?>
a stale to vyhadzuje chybu
"Invalid link: No route for Homepage:congres 2, neuro, Neurológia, 1()"nechapem
vobec preco metoda renderCongres v presenteri Homepage je a tie parametre
tam su…
Editoval figurluk (4. 6. 2015 21:32)
- David Matějka
- Moderator | 6445
nemuzes to tam takhle poslat jako retezec, musis oddelit identifikator
presenteru a akce (tzn Homepage:congres
) a parametry jako pole.
v sablone pak:
<a n:href="$link (expand) $args">
Alternativou by bylo pouzit query syntax (ta byla chvili deprecated, ted uz
zas neni), tam posles retezec ve
tvaru Presenter:action?param=value¶m2=value2
- figurluk
- Člen | 61
David Matějka napsal(a):
nemuzes to tam takhle poslat jako retezec, musis oddelit identifikator presenteru a akce (tzn
Homepage:congres
) a parametry jako pole.
v sablone pak:<a n:href="$link (expand) $args">
Alternativou by bylo pouzit query syntax (ta byla chvili deprecated, ted uz zas neni), tam posles retezec ve tvaru
Presenter:action?param=value¶m2=value2
Takze ako to mam mat teda v Presenteri a ako v latte prosim Ta :) nemam tolko skusenosti
- figurluk
- Člen | 61
figurluk napsal(a):
David Matějka napsal(a):
nemuzes to tam takhle poslat jako retezec, musis oddelit identifikator presenteru a akce (tzn
Homepage:congres
) a parametry jako pole.
v sablone pak:<a n:href="$link (expand) $args">
Alternativou by bylo pouzit query syntax (ta byla chvili deprecated, ted uz zas neni), tam posles retezec ve tvaru
Presenter:action?param=value¶m2=value2
Takze ako to mam mat teda v Presenteri a ako v latte prosim Ta :) nemam tolko skusenosti
a preco to vobec v inych latte funguje ked mam napisane:
<?php
<a n:href="congres $row->id, $row->code, $row->name, 1" class="footer-link">
?>
Editoval figurluk (4. 6. 2015 22:06)
- Unlink
- Člen | 298
Najjednoduchšie bude vygenerovať ten link v presentery
$link = $this->link('Homepage:congres', array($congresID, $congresCode, $congresName, 1));
Respektíve ak chceš linky robiť až v latte tak
$link = 'Homepage:congres';
$args = array($congresID, $congresCode, $congresName, 1);
$this->template->breads =
array('Kongresy' => 'Homepage:default',
$congresName => array($link, $args),
$userName.' '.$userSurname => ''
);
<a n:href="$link[0] (expand) $link[1]">
Bolo tu na fóre pekné vysvetlenie prečo to nejde (od @dg) ale neviem to nájsť.
jediné čo som našiel bolo toto
https://forum.nette.org/…t-z-databaze#…
Editoval Unlink (4. 6. 2015 22:24)
- figurluk
- Člen | 61
Unlink napsal(a):
Najjednoduchšie bude vygenerovať ten link v presentery
$link = $this->link('Homepage:congres', array($congresID, $congresCode, $congresName, 1));
Respektíve ak chceš linky robiť až v latte tak
$link = 'Homepage:congres'; $args = array($congresID, $congresCode, $congresName, 1); $this->template->breads = array('Kongresy' => 'Homepage:default', $congresName => array($link, $args), $userName.' '.$userSurname => '' );
<a n:href="$link[0] (expand) $link[1]">
Bolo tu na fóre pekné vysvetlenie prečo to nejde (od @dg) ale neviem to nájsť.
jediné čo som našiel bolo toto
https://forum.nette.org/…t-z-databaze#…
ked som to dal podla toho proveho tak mi to dalo: Query syntax is deprecated.
a prave ja potrebujem ten link vytvorit uz v presenteri v podstate a v latte ho len umiestnit do n:href
- David Matějka
- Moderator | 6445
@figurluk kdyz vygenerujes odkaz v presenteru, tak uz to neposilej v sablone do n:href
- figurluk
- Člen | 61
David Matějka napsal(a):
jen
href="$link"
no tak som to urobil ale teraz to vygeneruje <a href=„$link“>
presenter:
<?php
$this->template->breads =
array('Kongresy' => $this->link('Homepage:default'),
$congresName => $this->link('Homepage:congres', array($congresID, $congresCode, $congresName, 1)),
$userName.' '.$userSurname => ''
);
?>
latte:
<?php
{foreach $breads as $name => $link}
{if $link==''}
<li class="active">{$name}</li>
{else}
<li><a href="$link">{$name}</a></li>
{/if}
{/foreach}
?>