Започнах тази публикация за да знам как мога да получа/задам стойности от потребителската сесия (Symfony 1.4). Get работи перфектно, но Set никога не работи. Виждам в режима за отстраняване на грешки, че глобалната сесия ($_SESSION) е актуализирана, но потребителската сесия не. Опитах по този начин и по този начин и още едно и поне this... Без успех. Никога не съм чел за такъв бъг от Symfony 1.4. Използвам като браузър (linux) Firefox и Chrome (тествах го и в анонимния раздел).
Debug Modus User изглежда така:
attributeHolder:
myNS: {
aValue: '15',
ns_15: {
Tel: '78568951',
myID: '15',
anotherID: '120',
anArray: [{
arrayID: '78',
Company: 'myComp'
}] },
ns_17: { ... }
}
Мога да променя атрибута aValue, да го изтрия и вмъкна отново. Но ns_15 или ns_17 могат да бъдат изтрити или променени, но тази промяна не може да бъде засегната (symfony Debug Mode) Потребител, но само в $_SESSION (symfony Debug Modus Globals ) мога да видя актуализираните стойности.
Има ли друг начин за задаване/промяна/изтриване или запис на стойност в потребителска сесия със symfony 1.4 или това е грешка в Symfony?
РЕДАКТИРАНЕ1
Просто не го разбирам, докато не видя този Бъг и този Блог !! добре, използвам AJAX за извикване на контролера. Така че това може би е причината, поради която не мога да пиша на Session. Друг начин, по който наистина не мога да класифицирам sfWebResponse, защото действията ми вече са подклас sfActions. :(
РЕДАКТИРАНЕ 2
Тъй като Edit1 се опитах да направя това:
$sessionData = $this->getUser()->getAttribute("ns_15", array(), "myNS");//all good
$sessionData["Tel"] = "0111111110";
var_dump($sessionData["Tel"]);//show me 0111111110
$this->getUser()->setAttribute("ns_15", $sessionData, "myNS");
$this->getUser()->shutdown();
sfContext::getInstance()->getStorage()->shutdown();
Поведението с двукратно презареждане е разрешено, но все още не може да се записва в $_SESSION и USER SESSION. (Същият проблем също).