我正在使用CakePhp 2.5,我进入了一个包含$ data数组的视图,
这是搜索表单的结果,我可以var_dump并查看是否存在。
如何将相同的$ data数组传递给以PDF格式显示输出的同一控制器的动作? ?
我试试:
echo $this->Html->Link("PDF", array('controller' => 'Verify',
'action'=> 'resultsPdf', $data),);
我得到:array (size=0) empty
答案 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']);
}