Ako spravit 2 url adresy pre jeden presenter
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- MKI-Miro
- Člen | 277
Ahojte
Chcem dosiahnut aby ked zadam
nieco.com/kontakt – aby ostalo tato url a obsah za zobral z presentera
Contact
nieco.com/contact – aby ostalo tato url a obsah za zobral taktiez
z presentera Contact
ak totiz spravim toto
$router[] = new Route('<presenter>/<action>/<id>', [
'presenter' => [
Route::VALUE => 'Homepage',
Route::FILTER_TABLE => [
// řetězec v URL => presenter
'kontakt' => 'Contact',
],
],
'action' => 'default',
'id' => NULL,
]);
tak routu nieco.com/contact mi zmeni na nieco.com/kontakt
Dakujem
- blaztar
- Člen | 93
Framework se stará o to, aby na určitý obsah vedla pouze jedna url (dokumentace).
Toto chování se dá vypnout v konktrétním presenteru, např:
class ContactPresenter extends Nette\Application\UI\Presenter
{
public function startup()
{
parent::startup();
$this->autoCanonicalize = FALSE;
}
}
- MKI-Miro
- Člen | 277
asi potrebujem presnejsi navod lebo toto
$router[] = new Route('<presenter>/<action>/<id>', [
'presenter' => [
Route::VALUE => 'Homepage',
Route::FILTER_TABLE => [
// řetězec v URL => presenter
'kontakt' => 'Contact',
],
],
'action' => 'default',
'id' => NULL,
]);
$router[] = new Route('contact', 'Contact:default');
mi stale zobrazi v url /contact
- greeny
- Člen | 405
Myslím, že něco takovýho by ti mohlo fungovat
$router[] = new Route('cs/<presenter>/<action>/<id>', [
'presenter' => [
Route::VALUE => 'Homepage',
Route::FILTER_TABLE => [
'kontakt' => 'Contact',
],
],
'action' => 'default',
'id' => NULL,
'lang' => 'cs',
]);
$router[] = new Route('<lang=en>/<presenter>/<action>/<id>', [
'presenter' => 'Homepage'
'action' => 'default',
'id' => NULL,
]);