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

Cakephp 2.5 pass data to controller action

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

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

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

我试试 :

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

我刚刚得到:array (size=0) empty

你不能像那样将数组作为参数传递给控制器​​函数。一种解决方法是将数组编码为 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']);
}