Zjištování zda stránka existuje
- jasin755
- Člen | 116
Zdravím,
hledám nejlepší způsob jak testovat zda existuje nexistuje nějaká stránka, nejlépe nějakým aplicationRequstem aby se nerenderovali šablony zbytečně.
Mělo by to fungovat tak, že např. zakládám produkt a potřebuji otestovat zda stejnou url už nemá nějaká kategorie, produkt, článek atd… (maji stejnou strukturu).
Mělo by to ještě nejak vracet ID abych mohl porovnávat zda v případě když stránka existuje nepatří produktu,kategori, článku, který právě edituji.
Díky mockrát.
- Myiyk
- Člen | 321
Toto je funkční příklad na sandboxu:
class HomepagePresenter extends BasePresenter {
/** @var \Nette\DI\Container */
protected $router;
public function __construct(\Nette\DI\Container $container) {
parent::__construct();
$this->router = $container->getService('router');
}
public function renderDefault() {
$url = new \Nette\Http\UrlScript("/sign/in/123"); // zadej si vlastní adresu
$r = $this->router->match(new \Nette\Http\Request($url));
dump($r);
}
}
Výsledek dumpu
Nette\Application\Request #f104
method private => NULL
flags private => array (1)
secured => FALSE
name private => "Sign" (4)
params private => array (2)
action => "in" (2)
id => "123" (3)
post private => array ()
files private => array ()
$r
je typu Nette\Application\Request
nebo NULL
když není shoda (chyba 404 – stránka
nenalezena)
Pro vyhodnocení se použijou routery, stejně jako u zpracování url adresy.
Data z toho lze dostat jednoduše
$r->getPresenterName();
"Sign" (4)
$r->getParameters();
array (2)
action => "in" (2)
id => "123" (3)
Editoval Myiyk (25. 7. 2014 14:06)