Vytváření „hezkých“ odkazů zjevně nefunguje
- eskedits
- Člen | 2
Dobrý den, mám na Vás prosbu.
Chtěl bych mít URL v následujícím tvaru:
/neco/vse, nyní mám ale toto:
/neco/?hledat=vse
Router:
$router->addRoute('neco/vse', 'MujPresenter:vse');
Presenter mám úplně prázdný, ale také ho sem tedy dám.
<?php
namespace App\Presenters;
use Nette;
class MujPresenterPresenter extends Nette\Application\UI\Presenter
{
private $db;
public function __construct(Nette\Database\Context $db)
{
$this->db = $db;
}
public function renderVse(): void
{
}
public function renderDefault($hledat): void
{
}
}
A odkaz se pokouším vytvářet takto:
<a n:href="MujPresenter: vse">Test odkazu</a>
Bohužel, výsledek není stále takový, jaký bych chtěl. Koukal jsem na forum, kde se tyto problémy řešili, i na dokumentaci Nette, bohužel bez výsledku. Nutno dodat, že pokud ručně přejdu na neco/vse, tak mi to vypíše požadovaný obsah ze šablony.. Jen ten odkaz to dělá jiný. Díky za každou radu.
- David Matějka
- Moderator | 6445
ahoj, mozna generujes jiny odkaz, nez zamyslis. routu mas pridanou pro
MujPresenter a jeho akci „vse“. ale pri generovani generujes odkaz na akci
„default“ (jelikoz za dvojteckou chybi nazev akce) a hodnotu „vse“
prirazujes do parametru „hledat“. pokud bys chtel vygenerovat odkaz na akci
„vse“, tak musis zapsat MujPresenter:vse
(bez mezery za
dvojteckou)
- eskedits
- Člen | 2
David Matějka napsal(a):
ahoj, mozna generujes jiny odkaz, nez zamyslis. routu mas pridanou pro MujPresenter a jeho akci „vse“. ale pri generovani generujes odkaz na akci „default“ (jelikoz za dvojteckou chybi nazev akce) a hodnotu „vse“ prirazujes do parametru „hledat“. pokud bys chtel vygenerovat odkaz na akci „vse“, tak musis zapsat
MujPresenter:vse
(bez mezery za dvojteckou)
Přesně tak, bylo to tím. Vůbec mě toto nenapadlo, že i v odkazu jedna mezera může nadělat takovou paseku, kterou jsem nechtěl. Děkuji moc, tohle si dobře zapamatuji! :)