Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 使用Cakephp表单助手提交数组_Arrays_Forms_Cakephp_Submit_Helper - Fatal编程技术网

Arrays 使用Cakephp表单助手提交数组

Arrays 使用Cakephp表单助手提交数组,arrays,forms,cakephp,submit,helper,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('Vie

我有下面的formhelper代码,$spot是一个变量数组:

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

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

否,因为它回显HTML输入标记。值必须是字符串或可以转换为字符串的内容。查看您的HTML源代码。

您也可以通过数组并将其放置在单个隐藏输入中,而不是在数组中循环并回显每个键。之后,您可以使用它

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

echo $this->Html->link('View', 
    array('controller' => 'spots', 'action' => 'view', $spot['Spot']['id']));
如果您试图保持页面之间的状态,您可能会发现使用
SessionComponent
更容易、更安全地执行此操作(永远不要信任从客户端发送回来的数据)。在控制器方法中,这非常简单:

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


读回数据。

k谢谢。我只是循环遍历并将每个key=>值作为隐藏输入进行回显
$spot = $this->Session->read('Spot.spotData');