Cakephp 2.5将数据传递给控制器​​动作

时间:2016-09-12 18:04:10

标签: cakephp-2.3

我正在使用CakePhp 2.5,我进入了一个包含$ data数组的视图,

这是搜索表单的结果,我可以var_dump并查看是否存在。

如何将相同的$ data数组传递给以PDF格式显示输出的同一控制器的动作? ?

我试试:

echo $this->Html->Link("PDF", array('controller' => 'Verify',
                                     'action'=> 'resultsPdf', $data),);

我得到:array (size=0) empty

1 个答案:

答案 0 :(得分:1)

您不能将数组作为参数传递给这样的控制器函数。一种方法是将数组编码为json字符串,然后在控制器操作中进行解码。

$encoded = json_encode($data);
echo $this->Html->Link(
    "PDF", 
    array(
        'controller' => 'Verify',
        'action'=> 'resultsPdf',
        $encoded
    )
);

控制器:

function resultsPdf($data) {
    $data = json_decode($data);
}

另一种方法是通过命名参数:

$encoded = json_encode($data);
echo $this->Html->Link(
    "PDF", 
    array(
        'controller' => 'Verify',
        'action'=> 'resultsPdf',
        'encoded' => $encoded
    )
);

控制器:

function resultsPdf() {
    $data = json_decode($this->params['named']['encoded']);
}
相关问题