如何在会话

时间:2015-05-11 21:38:40

标签: php session cakephp cakephp-2.0

我正在使用这样:

        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 )

复选框的图片:

enter image description here

1 个答案:

答案 0 :(得分:1)

在第二个'if'条件下设置时,您正在擦除阵列。 您可以考虑使用数组缓冲要放入会话的数据,然后立即将其全部放入:

$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);