这已经困扰了我一个星期了。
我似乎无法通过页面重定向获得一个大的php数组来保持会话。
for ($i=1;$i<$data['weeks'];$i++) {
$instances[] = array(
'start' => $startTime + ((86400 * 7) * $i),
'end' => $startTime + ((86400 * 7) * $i) + $duration,
'venueId' => $data['venueId']
);
}
$request->getSession()->set('addClass-1-instances', $instances);
return new RedirectResponse ($this->generateUrl(
'class_add', array(
'clubId' => $this->club->clubId,
'step' => 4,
'classType' => 1
)
));
当数组非常小(1-10个元素)时会起作用,但当它变大(1000 - 2000个元素)时会失败。
如果我在添加会话对象后将其转储出来,我可以看到它在会话属性集合中。
var_dump($request->getSession());
protected 'attributes' => &
array (size=6)
'addClass-1-instances' =>
array (size=1560)
0 => ...
但是一旦页面被重定向,会话似乎完全是空的。
object(Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag)[487]
private 'name' => string 'attributes' (length=10)
private 'storageKey' => string '_sf2_attributes' (length=15)
protected 'attributes' => &
array (size=0)
empty
我们将会话存储在数据库中,并且在其余的webapp中都可以正常工作。我已经阅读了所有地方,并看到人们谈论session.save-dir php选项,但我不认为这在使用数据库存储时无关紧要。
帮助!
不确定如何解决这个问题。会话ID在两个页面上保持不变,并且没有明确清除会话的代码。
不确定去哪里但不是这里!