我是一个新的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和电子邮件成功创建用户 电话只添加了id和user_id('no'和'num'没有添加) Ps:我试过“saveAll”。 请帮助,谢谢。
答案 0 :(得分:3)
对于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');
答案 1 :(得分:2)
对于HasMany
关联,correct format就是这样:
'User' => array(
'name' => 'foo',
'fname' => 'bar',
'email' => 'foo@bar.com'
),
'Telephone' => array(
array(
'no' => 1,
'num' => '0500000050'
)
)