蛋糕php saveAssociated不工作

时间:2014-12-26 23:32:37

标签: php cakephp


我是一个新的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”。 请帮助,谢谢。

2 个答案:

答案 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'
    )
)