CakePHP - 如何在Session中推送数组?

Dav*_*der 5 php model-view-controller cakephp

如果我有以下,

$this->Session->write('ScoreCardCriteria', 'test');
Run Code Online (Sandbox Code Playgroud)

并且想要将另一个项目添加到ScoreCardCriteria作为项目数组,我该怎么做?

使用常规PHP,它会是这样的

$_SESSION['ScoreCardCriteria'][] = 'test';
Run Code Online (Sandbox Code Playgroud)

我想出了这个:

    $new_array = array_merge((array)$this->Session->read('ScoreCardCriteria'), array('test'));
    $this->Session->write('ScoreCardCriteria', $new_array);
Run Code Online (Sandbox Code Playgroud)

但如果有更多的"蛋糕"方式,我会喜欢它.

And*_*oso 12

你可以这样做:

$this->Session->write('ScoreCardCriteria', array( 'test' ) );
Run Code Online (Sandbox Code Playgroud)

然后:

$data = $this->Session->read('ScoreCardCriteria');
$data[] = 'test';
$this->Session->write('ScoreCardCriteria', $data);
Run Code Online (Sandbox Code Playgroud)

但是,说实话,CakePHP在内部使用$ _SESSION对象,只是覆盖默认的会话处理程序.唯一->write能做的就是解析一个foo.bar.x你没有做的点标记设置路径(看起来像).如果您正在观看特定值,请回显调试信息.如果你$_SESSION直接修改它不应该受到伤害.