AbortException … not very silent :-)
- josef.sabl
- Člen | 153
Hezký den…
Mám komponentu, která má při určitém ajaxově volaném signálu vracet JSON data. Mám v ní takovýto kód:
$presenter->sendResponse(new JsonResponse($data));
Místo požadovaných dat ale dostanu pětistovku a v logu mám Nette\Application\AbortException.
Co dělám špatně?
Díky
- josef.sabl
- Člen | 153
Majkl578 napsal(a):
Provádíš to moc pozdě, až po skončení životního cyklu presenteru. Musíš tak učinit někde mezi startup (včetně) a shutdown (vyjma) fází.
Ano, je to tak. Provádím to v metodě render komponenty. Pokusil jsem se tedy volání umístit do __construct komponenty, ale tam zase dostávám:
Component '' is not attached to 'Nette\Application\UI\Presenter'.
- josef.sabl
- Člen | 153
Majkl578 napsal(a):
Pokud taková věc do komponenty patří, čímž si nejsem jistý, správné místo je metoda
attached()
:protected function attached($parent) { if (!$parent instanceof Presenter) { return; } $this->blabla(); }
Super, díky za tip.
Ad nepatří: kam tedy patří? Používám 3rd party komponentu, která si ajaxově stahuje data. Rád bych ji strčil do své komponenty (což je v podstatě tabulka) a potřebuju tedy vrátit JSON.
- josef.sabl
- Člen | 153
Jo, udělal jsem refaktoring a je to přes signál na komponentě. Díky za nasměrování.