如何在 Session 上存储多个参数

How to store multiple params on Session

我是这样使用的:

        if(!empty($this->request->data['cd_pedido'])){
            $this->set('filtroBusca',array('cd_pedido'=>$this->request->data['cd_pedido']));
        }else if(!empty($sessaoCdPedido)){
            $this->set('filtroBusca',array('cd_pedido'=>$sessaoCdPedido));
        }

        if(!empty($this->request->data['cd_seq_pedido'])){
            $this->set('filtroBusca',array('cd_seq_pedido'=>$this->request->data['cd_seq_pedido']));
        }else if(!empty($sessaoCdSeqPedido)){
            $this->set('filtroBusca',array('cd_seq_pedido'=>$sessaoCdSeqPedido));
        }

当我这样做时: $this->Session->read('filtroBusca')$_SESSION['filtroBusca']

仅显示最后选中的复选框。有人可以告诉我我做错了什么吗?

结果来自 $_SESSION['filtroBusca']

Array ( [cd_pedido] => 7 )

复选框图片:

您在将数组设置为第二个 'if' 条件时正在擦除数组。 你可以考虑用数组来缓冲你想放入session的数据,然后一次性全部放入:

$filtroBusca = array();
if(!empty($this->request->data['cd_pedido'])){
    $filtroBusca['cd_pedido'] = $this->request->data['cd_pedido'];
}else if(!empty($sessaoCdPedido)){
    $filtroBusca['cd_pedido'] = sessaoCdPedido;
}

//Do the same thing for the other one

然后将 $filtroBusca 放入会话中:

$this->set('filtroBusca',$filtroBusca);