[英]cake php saveAssociated not working
我是一个新的CakePHP用户,使用saveAssociated时遇到了一些麻烦。
这就是我所拥有的:
楷模
用户模型: $hasMany = "Telephone";
电话型号: $belongsTo = "User";
调节器
public function add() {
if ($this->request->is('post')) {
if (!empty($this->request->data)) {
if ($this->User->saveAssociated($this->request->data)) {
//success
return $this->redirect(array('action' => 'index'));
}
//fail
}
// no data sent
}
}
数据
Array (
[User] => Array (
[name] => foo
[fname] => bar
[email] => foo@bar.com
)
[Telephone] => Array (
[no] => 1
[num] => 0500000050
)
)
问题
使用id名称fname和email成功创建用户。
电话只添加了id和user_id('no'和'num'没有添加)。
Ps:我试过“saveAll”。 请帮助,谢谢。
对于hasMany
,数组应采用此形式
array(
'User' => array(
'name' => 'Abhijeet Kambli',
'fname' => 'Abhijeet',
'email' => 'test@gmail.com'
),
'Telephone' => array(
(int) 0 => array(
'no' => '1',
'num' => '999999999'
)
)
)
所以你的view/users/add.ctp
应该是这样的
<?php
echo $this->Form->create('User');
echo $this->Form->input('User.name');
echo $this->Form->input('User.fname');
echo $this->Form->input('User.email');
echo $this->Form->input('Telephone.0.no');
echo $this->Form->input('Telephone.0.num');
echo $this->Form->submit('Add');
echo $this->Form->end();
?>
对于第二个电话号码
echo $this->Form->input('Telephone.1.no');
echo $this->Form->input('Telephone.1.num');
对于HasMany
关联, 正确的格式是这样的:
'User' => array(
'name' => 'foo',
'fname' => 'bar',
'email' => 'foo@bar.com'
),
'Telephone' => array(
array(
'no' => 1,
'num' => '0500000050'
)
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.