繁体   English   中英

蛋糕php saveAssociated不工作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM