jak nastavit výchozí mapovací pravidlo
- webman
- Člen | 15
Píši aplikaci, která využívá "virtuální presentery”. Potřebuji v některých modulech nastavit výchozí presenter, který se načte, pokud třída požadovaného prezenteru nebyla nalezena – nejedná se ale o chybu. Případnou 404 by vyhodil teprve tento presenter. Mapovací pravidla ale umožňují jen jedno pravidlo “*”, jinak se vyvolá chyba.
Alternativní řešení by bylo nastavit na pevno prezenter, který se vždy načte (to můžu udělat v routingu), řekněme jakýsi „subrouter“, a pak udělat nějak redirect na zvolený prezenter (normální nebo univerzální), ale to mi nepřijde moc jako čisté řešení. Minimálně to bude aplikaci zbytečně zpomalovat. Řešení na úrovni mappingu by mi přislo o dost čistí.
Je nějaký způsob jak to vyřešit?
Předem díky za radu
- Šaman
- Člen | 2666
Myslím že jsem něco podobného řešil v ErrorPresenteru. Tam jsem vyhodnotil chybu a případně přesměroval.
Edit: teď jsem to zkoušel a funguje to v produkčním režimu. V ladicím
režimu se zobrazí Tracy, protože v PresenterFactory
došlo
k neošetřenému vyvolání výjimky
Nette\Application\InvalidPresenterException
.
Editoval Šaman (19. 7. 2021 12:42)