使用Cakephp Form Helper提交数组

时间:2011-04-08 23:02:13

标签: arrays forms cakephp submit helper

我有以下formhelper代码,其中$ spot是一个变量数组:

   echo $form->create('Spot', array('controller' => 'spots', 'action' => 'view'));
                    echo $form->hidden('spotdata', array('value' => $spot));
                    echo $form->end('View');

当我在控制器中print_r($ this-> data)时,spotdata为空。 formhelper可以接受数组的值吗?有没有办法做到这一点?请让我知道,谢谢!

3 个答案:

答案 0 :(得分:1)

不,因为它回显了HTML输入标记。该值必须是一个字符串或可以转换为字符串的东西。查看您的HTML源代码。

答案 1 :(得分:1)

我注意到您正在将数据发送到视图。将ID发送到视图更加惯用,数据可以从数据库重新加载。在这种情况下,链接就足够了:

echo $this->Html->link('View', 
    array('controller' => 'spots', 'action' => 'view', $spot['Spot']['id']));

如果您尝试保持页面之间的状态,您可能会发现使用SessionComponent执行此操作更容易,更安全(绝不相信从客户端发回的数据)。在您的控制器方法中,这很简单:

$this->Session->write('Spot.spotData', $spot);

$spot = $this->Session->read('Spot.spotData');

回读数据。

答案 2 :(得分:0)

您可以serialize()数组并将其放在一个隐藏的输入中,而不是循环遍历数组并回显每个键。之后你可以deserialize()