将信息从视图发送到控制器
Posted
技术标签:
【中文标题】将信息从视图发送到控制器【英文标题】:Send info from View to Controller 【发布时间】:2013-04-30 17:33:37 【问题描述】:我第一次在 cakephp 中为我正在开发的项目工作。在一个视图中,我有一个数组,我希望能够在其中使用控制器函数。
我有信息的数组就是这个
$linkedinInfo
然后在视图中,我使用表单将数组从视图发送到控制器
$this->Form->create('LinkedinData', array('controller'=>'Users','type' => 'post', 'action' => 'add'));
$this->Form->input('User', $linkedinInfo);
$this->Form->end('submit');
添加被添加是用户控制器中不是我开发的功能。函数是
public function add()
if ($this->request->is('post'))
$this->User->create();
if ($this->User->save($this->request->data))
$this->Session->setFlash(__('The user has been saved'));
$this->redirect(array('action' => 'index'));
else
$this->Session->setFlash(__('The user could not be saved. Please, try again.'));
我收到错误“数组到字符串转换”,我对在 CakePHP 中工作不是很熟悉,但我不明白为什么我会得到这个,因为 Cookboek 使用了像我这样的所有东西 http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html
编辑:LinkedinInfo 是我通过 Linkedin API 获得的数组,然后我在后面对其进行编辑。这里只是推荐部分的结构示例
[linkedin_recomendations] => Array
(
[0] => Array
(
[name] => test1
[relationship] => education
[text] => Hello world
)
[1] => Array
(
[name] => test2
[relationship] => colleague
[text] => Derp
)
)
我要做的是将此信息发送到 UsersController,它将在 Mongodb 数据库中创建一个用户
【问题讨论】:
你的整个表格都搞砸了。如果没有url => array()
,您的 create() 中的控制器密钥无效。此外,它的小写users
。您的输入字段应该是 Modelname.field_name
并且只包含一个值(除非它的某个下拉列表或多个字段)。
你确定吗?因为我没有看到带有 url==>"array" 的示例。关于输入字段,我的数组是一个多维数组,那是否意味着我必须将每个字段一个一个地放好?
您到底想达到什么目的? 1) $linkedInInfod
的 content 是什么样的? 2)$linkedInInfod
来自哪里?是否需要先在表单中显示,还是要将其插入数据库而不需要额外的用户交互?请通过edit 链接将信息添加到您的问题中
@user697110 是的,如果数组包含多个字段,您必须向表单添加多个输入,就像您通常创建表单一样,例如'name' 和 'email' 的单独输入
是的,我很确定。此处只能直接使用操作键。
【参考方案1】:
您尝试提交的数据格式不正确,无法保存。
请检查本书以确保您的数据格式正确。
http://book.cakephp.org/2.0/en/models/saving-your-data.html
【讨论】:
以上是关于将信息从视图发送到控制器的主要内容,如果未能解决你的问题,请参考以下文章