V ErrorPresenteri mi nefunguje link
- vladimir.biro
- Člen | 163
Ahojte. V ErrorPresenteri mam v pripade 404 urobene presmerovanie na vlastny presneter Error4xxPresenter (tak ako je v sandboxe). Tento presenter zobrazuje zablonu 404.latte (resp podla kodu chyby), no problem je v tom, ze v tejto sablone mi nefunguje link. Konkretne vsade, kde mam poufity filter link mi vygeneruje namiesto odkazu len #.
Ked priamo v Error4xxPresenter → renderDefault napisem:
tak echo zobrazi tiez len #
http://prntscr.com/kise47 → http://prntscr.com/kiseg8
Viete mi pls. niekto poradit preco to je a ako spravit, aby mi to generovalo linky normalne? Mal som za to, ze sa jedna o uplne bezny presenter a ze by tam vsetko malo fungovat.
Error4xxPresenter dedi od UI/Presenter
http://prntscr.com/kisf5m
Skusal som vo fore (aj googli) hladat asi hodinu, no podobny pripad som nenasiel.
Vopred dakujem za rady.
Edit: Projekt nie je deleny na moduly.
Editoval vladimir.biro (15. 8. 2018 9:27)
- m.brecher
- Generous Backer | 889
Ahoj,
udělal jsem si Error4xxPresenter podobně jako ty:
Tohle řešení ErrorPresenteru se mě osvědčilo. Tvůj link zde funguje OK. Error4xxPresenter dědí z Nette\Application\UI\Presenter a má stejnou funkcionalitu jako normální aplikační presenter včetně generování linků.
Já ale narazil na jinou odlišnost Error4xxPresenteru oproti standardnímu aplikačnímu presenteru a sice, že má zablokováno zpracování signálů – a to si myslím že je dobře a bude to asi z bezpečnostních důvodů, ale nejsem si jistý, neboť jsem nette začátečník. Můj příspěvek o Error4xxPresenteru je zde: https://forum.nette.org/…l-komponenty
- Marek Bartoš
- Nette Blogger | 1297
A existuje pro ten error presenter routa? Nette zakazuje routování error presenteru který je v configu, takže je nutné udělat forward na jiný „error presenter“, který má svou vlastní url adresu. V něm pak budou signály (a tedy i formuláře) fungovat správně.
- m.brecher
- Generous Backer | 889
Marek Bartoš napsal(a):
A existuje pro ten error presenter routa? Nette zakazuje routování error presenteru který je v configu, takže je nutné udělat forward na jiný „error presenter“, který má svou vlastní url adresu. V něm pak budou signály (a tedy i formuláře) fungovat správně.
Je to zajímavá myšlenka a budu to muset nějak prozkoumat. Ale dávat routu pro ErrorPresenter – to je dost komplikované a aby to nemělo nějaké nežádoucí vedlejší účinky :(
Zatím jsem to vyřešil jednoduše – místo signálu v ErrorPresenteru použiji obyčejný html odkaz. A žádnou routu nemusím pro Error4xxPresenter dělat.