cakephp rest教程说发布数据应该在$ this->数据中,但我发现它不是,而是在$ this-> params ['form']
内但是,在视图中使用cakephp表单助手时,数据位于$ this->数据中。
我是否必须检查控制器中的两个位置?
这似乎有点浪费额外的代码。数据是否出现在一个地方,无论是来自休息休息请求者还是Cakephp表单帖子?
ps我正在使用cakephp 1.3
答案 0 :(得分:5)
我认为HTML中的输入名称可能不正确或未正确生成(如果您使用的是表单助手)。仔细检查您的HTML以确保(在浏览器中查看源代码)。
存储在Controller :: data变量中的数据来自POST值,其中输入的名称以数据开头。因此,此输入标记的值为$ this-> data ['Anything'] ['Something']:
<input type="text" name="data[Anything][Something]" />
使用表单助手时,请执行以下操作:
<?php echo $form->input( 'Something' ); ?>
表单助手非常聪明,可以知道您正在使用哪个模型(我认为因为它在您调用$ form-&gt; create('Modelname')时设置了一个属性)。所以上面的(PHP /表单助手)示例将输出:
<input type="text" name="data[Modelname][Something]" ... />
当然,有一些警告(Modelname.Something必须是相应数据库表中存在的字段),但您可以通过查看手册了解更多信息。
最后,我相信$ this-&gt; params ['form']属性具有所有POSTed值,无论您是否在输入名称前加上“data”。