Více různých mapování presenterů
- svezij
- Člen | 69
Ahojte, je nějak možné nastavit dvě různá mapování a říct, dle které definice mapování má mapovat který presenter?
config.neon
common:
application:
mapping:
extensions: extensions\*\presenters\*Presenter
*: app\*\presenters\*Presenter
a routa
<?php
new Route('[<locale=cs cs|sk|en>/]admin/helloWorld/<presenter>/<action>[/<id>]', [
'module' => 'helloWorld',
'presenter' => 'HelloWorld',
'action' => 'default',
'id' => NULL
], Route::SECURED);
?>
se samozřejmě snaží načíst presenter
admin:helloWorld:HelloWorld
ve jmenném prostoru
app\admin\helloWorld\presenters\HelloWorldPresenter
, kde jej
nenajde, protože tento presenter se nachází dle druhého mapování na
extensions\admin\helloWorld\presenters\HelloWorldPresenter
. Je
možné tohoto chování docílit, nebo musím všechny presentery v aplikaci
mapovat podle mapování *
? Díky.
- Martk
- Člen | 661
V konfiguračním souboru mapuješ jeden modul a tím je extensions, * je použitá jako výchozí.
Načítáš presenter s adresou admin:helloWorld:HelloWorld – modul je admin. V mapování existuje jen extensions a ten se neshoduje s admin, tak je použitá *. Aby se to správně namapovalo, tak se musí použít: extensions:helloWorld:HelloWorld nebo extensions:admin:helloWorld:HelloWorld v tvém případě. Pro vlastní mapování budeš muset napsat vlastní presenter factory, originál je tady: https://api.nette.org/…ory.php.html#…
Editoval Antik (29. 6. 2016 12:35)
- Barvoj
- Člen | 60
Pro více info o tom jak funguje presenter mapping doporučuji článek http://zlml.cz/…g-presenteru :)