Prázdná session – Fatal error: Exception thrown without a stack frame in Unknown on line 0
- Jan Endel
- Člen | 1016
Zdravím, mám následující problém, dělám e-shop a přidávám položky do košíku takto:
public function startup()
{
parent::startup();
$this->cart = $this->context->session->getSection('cart');
//$this->cart->warnOnUndefined = TRUE;
//if (!isset($this->cart->content)) $this->cart->content = array();
}
public function actionAdd($id, $count = 1, $backlink = null)
{
if ( isset($this->cart->content[$id]) ){
$this->cart->content[$id]['count']+=$count;
}
else {
$this->cart->content[$id]['product'] = $this->context->productModel->getProduct($id);
$this->cart->content[$id]['count'] = $count;
}
$this->flashMessage('Produkt byl přidán do košíku');
/*if ($backlink !== null) {
$this->context->application->restoreRequest($backlink);
}
else {
$this->redirect('list');
}*/
$this->template->cart = $this->cart;
}
session nakofigurovana v config.neon:
session:
options:
save_path: "%tempDir%/sessions"
expiration: "+ 7 days"
a jde o to, že session se vytvari (v jinem adresari, to taky nevim proc,
ale to je vedlejsi, soubory se session fyzicky existuji), session je
nastartovana dump($this->context->session->isStarted())
vyhazuje TRUE
a jde o to, ze session, at do ni pridam co do ni
pridam mi stale povida ze obsahuje NULL
, vsiml jsem si dole na
strance hlasky
Fatal error: Exception thrown without a stack frame in Unknown on line 0
coz jak jsem se docetl, je chyba v destruktoru, ovsem nic takoveho jsem
neobjevil nikde.
Pokud odkomentuju ten redirect, tak mi dokonce ani nevyskoci ocekavana flashmessage ze produkt byl pridan.
Diky za jakoukoliv radu, uz jsem z toho mirne zoufaly.
- Filip Procházka
- Moderator | 4668
- metoda
startup
je zpravidlaprotected
Exception thrown without a stack frame
se zpravidla objevuje během zpracování v destruktoru, nebo při zavoláníregister_shutdown_handler
, při ukončování scriptu. Zkontroluj si panel, jestli je v pohodě a jestli vypisuje co má. Většinou mi tohle dělal zabugovaný panel (i přímo v Nette)
- Filip Procházka
- Moderator | 4668
Já vím, ale stejně ta chyba vzniká v panelu, schválně ho zkus zakázat
Nette\Debugging\Debugger::$bar = FALSE;
- Jan Endel
- Člen | 1016
Tak barem to taky neni, nastavil jsem natvrdo na produkcni mod a stejnak porad kosik zeje prazdnotou, pustim se asi do studia samotne session. Pres tvoji metodu mi to porad nechtelo jit, nemohl jsem se dopatrat, kde se na bar navesujou dalsi casti (konkretne routing debuger) a na tom mi to padalo. Ponevads se vesel na false a to se mu nelibilo.
Editoval pilec (30. 7. 2011 19:50)