Jeden konkrétní presenter neposílá flash message; nefunkční flash message

TonnyVlcek
Člen | 31
+
+1
-

Ahoj,

v @layout.latte standardně vypisuju flash zprávy (daný blok je tam vložený: {include listFlashMessages}).

Normálně se flash messages posílají a vypisují v pořádku, ale mám jeden presenter který, ve kterém když pošlu flash message a redirectnu kamkoli jinam (mimo $this->redirect('this')) tak se flash message jakoby ztratí. Cílová url obsahuje _fid parametr. Ale když dumpnu $this->template->flashes tak dostanu prázdné pole.

Ještě přidám, že jiný presenter, který má stejného „rodiče“ podobným problémem netrpí.
Pokud pošlu flash a redirectnu sám na sebe $this->redirect('this') zpráva se správně zobrazí.
Teď jsem taky přišel na to, že stejný problém je s používáním $this->storeRequest(), opět funguje pro další presentery jen ne pro tento.
¯¯\_( ͡° ͜ʖ ͡°)_/¯

Nedaří se mi najít nic speciálního ohledně tohoto presenteru, má pár handle metod, actionDefault, renderDefault a dvě primitivní komponenty. Nikde (pokud mi teda něco neuniká se nesahá na session). Po vyhození flash message následuje normální redirect a AJAX by tu tudíž neměl hrát žádnou roli.

Takže samotným presenterm by to být nemělo, jediná specialita by mohla být v routeru, pro nasměrování na tento presenter používám filtry:

$frontRouter[] = self::localizedRoute( 'auction/<sale>/<id \d+>', [
			'presenter' => 'Lot',
			'action' => 'default',
			'sale' => [
 				Route::FILTER_IN => function (string $sale) {
					$saleId = (int)(explode('-',$sale)[0]); //[sale_id]-[slug]
					return $this->saleManager->getExistingById($saleId);
				},
				Route::FILTER_OUT => function (Sale $sale) {
					return strtolower("{$sale->id}-{$sale->ends->format('F')}");
				}
			]);

Je možný, že právě díky těmhle filtrů někde „ztratím“ flash message, a storedRequest? Jak se tomu vyhnout? A proč to dělá?

Našel jsem na fóru pár podobných diskusí, ale bohužel v nich nenašel odpověď.

Díky

Editoval TonnyVlcek (20. 9. 2018 20:48)