簡體   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