2010-05-03 52 views
0

该cakephp休息教程说,发布数据应该在$ this->数据,但我发现它不是,而是在$ this-> params ['form']

但是,当使用cakephp在视图中形成助手,数据位于$ this-> data中。

我正确地检查我的控制器中的两个位置吗?

这似乎有点浪费额外的代码。数据是否出现在一个地方,是否来自休息休息请求者或Cakephp表单发布?使用CakePHP 1.3

回答

5

PS IM我觉得可能在你的HTML输入名称不正确,或没有正确生成(如果你使用表单辅助函数)。仔细检查你的HTML是否确定(在浏览器中查看源代码)。

存储在Controller :: data变量中的数据来自POST值,其中输入的名称以数据开头。所以这个输入标签将在$这个 - 值>数据[ '任何'] [ '东西']:

<input type="text" name="data[Anything][Something]" /> 

当您使用表单助手,并做到这一点:

<?php echo $form->input('Something'); ?> 

表单助手很聪明,可以知道你使用的是哪个模型(我认为是因为它在你调用$ form-> create('Modelname')时设置了一个属性)。因此,上述(PHP /表单辅助)的例子将输出:

<input type="text" name="data[Modelname][Something]" ... /> 

当然,也有几个注意事项(Modelname.Something必须是在相应的数据库表中存在一个字段),但你可以了解更多通过查看手册。无论您是否在输入名称前添加“data”,最后我都相信$ this-> params ['form']属性具有所有POST的值。

+0

感谢特拉维斯为您的答案,我确实证实,蛋糕将数据名称添加到生成的表格源(我不能改变)。但是我没有发现所有的帖子数据总是放在$ this-> params中。所以我仍然坚持检查控制器:-( – DEzra 2010-05-05 21:27:12

相关问题