Nette, redirect v komponente
- wallkysek
- Člen | 52
Zdravím,
mám problém týkající se redirectu přes komponentu. TO jestli se mám
někam redirectnout můžu vyhodnotit v Handle funkci, ktere predam parametr ID
dle ktereho potom zjistim zdali redirect. Ale To mi vyhodi chybu: Cannot set
HTTP code after HTTP headers have been sent. Pote jsem zkousel redirect
v renderu, ale tam to hazi NAbortException, to sem se docetl ze v render fci
komponenty se redirectovat nemuze. Ale potom vubec nevim kde jinde bych mohl
z komponenty redirectovat na jiny presenter. (PhP5.2)
Dekuji za jakoukoliv konstruktivni odpoved
- wallkysek
- Člen | 52
Bohužel to nejde, nebo asi by to šlo, ale řešil sem to pomocí komponenty, kvůli tomu že se tam vyskytuje vícekrát. Kdybych to měl nějak popsat tak by se to rovnalo asi „systému práv“ kde někdo může do této „lokace“ jiný do jiné, atd.. takže komponenta slouží vlastně jako složka obsahující složky s jednotlivými lokacemi.
- newPOPE
- Člen | 648
@wallkysek tu to mas vysvetlene ako sa to ma robit :)
https://doc.nette.org/…s/form-reuse#…
Dolezite na tom je:
- nepresmerovavat v komponente ale v „presenteri“ za pomoci signalu komponenty
- componenta zavola sama na sebe signal a na ten pocuva presenter a presmeruje
keby si chcel o tom celom vediet viac tak tu: http://www.slideshare.net/…te-framework
EDIT: aha vidim PHP5.2 :/
Editoval newPOPE (15. 12. 2014 10:51)
- wallkysek
- Člen | 52
Tak zkusil jsem to pres ty callbacky, asi takto: V presenteru ke kteremu
patri i komponenta jsem si vytvoril fci na redirect, a pak jsem ji predal jako
parametr komponente, ktera si ji ulozila do promenne. Potom kdyz jsem potreboval
aby se dany callback zavolal, tak jsem ho invoknul
$this->callback->invoke(); Bohuzel to ma stejy vysledek jako
$this->presenter->redirect(‚kam‘);. Predpokladam ze se to chova
naprosto totozne..
Vyhazuje mi to chybu NAbortException (ne nezachytávám ji jinde, co sem
pročítal fórko tak se prostě redirectovat pri nahravani komponenty neda).
Nebo jsem spatne pouzil ten callback :/
Edit: Nejhorsi na tom je ze mi to na php >= 5.3 funguje bez problemu.
Editoval wallkysek (15. 12. 2014 15:53)