Vytvorenie seo optimálnej url bez nutnosti vytvoreni action metody
- KristianSubweb
- Člen | 146
Ahoj chcel by som sa Vás opýtať nejako neviem dať dohromady roueter pre jednu moju funkcionalitu.
Takéto niečo postrebujem vo výsledku:
mojadomena/moduly/nazov-modulu
Moduly je názov presenteru ako dalšie v tej url možete vidieť
/nazov-modulu
a tam narážam na problém nechcem pre to vytvárat action metody v Moduly
resentéru
Proste by som chcel aby to spracoval actionDefault a nie action podla toho názvu modulu.
Maine code:
protected function appendRouteList($routelist, $routemask, $destination) {
$newRouteList = new RouteList($routelist);
$newRoute = new Route($routemask, $destination);
$newRouteList[] = $newRoute;
$builder = $this->getContainerBuilder();
$builder->parameters["createdRoutes"][] = $newRouteList;
}
Potom mám vytvorený default module extension kde volám tuto funkciu
class DefaultExtension extends DefaultModuleExtension {
public function loadConfiguration() {
$this->appendRouteList("Front:Domov", '[<locale=sk sk|en|de>/]<presenter>/<action>[/<id>]', "Domov:default");
//Toto je tá chybná routa
$this->appendRouteList("Front:Moduly", '[<locale=sk sk|en|de>/]<presenter>/<action>[/<name>]', "Moduly:default");
$builder = $this->getContainerBuilder();
$builder->addDefinition($this->prefix('frontAuthentication'))
->setClass('FrontModule\Classes\FrontAuthentication')
->setAutowired("self");
$builder->addDefinition($this->prefix('LoginFormFactory'))
->setClass('FrontModule\Factories\LoginFormFactory');
$builder->addDefinition($this->prefix('contactFormFactory'))
->setClass('FrontModule\Factories\ContactFormFactory');
$builder->addDefinition($this->prefix('appointmentFormFactory'))
->setClass('FrontModule\Factories\AppointmentFormFactory');
}
}
Ďakujem za vaše odpovede.
Editoval KristianSubweb (27. 9. 2019 11:21)
- Ondřej Kubíček
- Člen | 494
podle mě máš navíc v routě <action>
tím pádem ho
chceš mít v url, ale ty vlastně nechceš a chceš všechno poslat na
default…
- KristianSubweb
- Člen | 146
No skusil som ale stále hladá zakaznici.latte ale to ani nebude existovať spracuje mi to tá routa nad tým.
$this->appendRouteList("Front:Moduly", '[<locale=sk sk|en|de>/]<presenter>/<name>', "Moduly:default");
//url : localhost/service/moduly/zakaznici
Tracy píše že to padlo do tejto
presenter = Domov
action = default
id = null
locale = sk
Front:Domov:Moduly:zakaznici
id = null
locale = sk
A pod tým je modra couta s výsledok:
presenter = Moduly
action = default
locale = sk
Front:Moduly:Moduly:default
name = zakaznici
locale = sk
Ale tá to nespravuje
- Ondřej Kubíček
- Člen | 494
no jasně ono neví kterou z těch dvou, ještě to můžeš udělat takhle, nevím jestli řešíš překlady ale to by šlo taky vyřešit
$this->appendRouteList("Front:Moduly", '[<locale=sk sk|en|de>/]moduly/<name>', "Moduly:default");
$this->appendRouteList("Front:Domov", '[<locale=sk sk|en|de>/]<presenter>/<action>[/<id>]', "Domov:default");
- KristianSubweb
- Člen | 146
Okey super už mi to ide diki moc za pomoc. Nie preklady v najbližšej dobe nebudeme riešiť. :)