2014-12-26 82 views
4


我是一個新的CakePHP用戶,我使用saveAssociated時遇到了一些麻煩。
這裏是我有:
模式蛋糕php 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] => [email protected] 
    ) 
    [Telephone] => Array ( 
      [no] => 1 
      [num] => 0500000050 
    ) 
) 

問題

用戶與ID名稱FNAME和電子郵件創建成功。
電話僅添加了id和user_id(不添加'no'和'num')。
Ps:我試過「saveAll」。 請幫助,謝謝。

回答

3

hasMany數組應該是這種形式

array(
     'User' => array(
      'name' => 'Abhijeet Kambli', 
      'fname' => 'Abhijeet', 
      'email' => '[email protected]' 
     ), 
     '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'); 
+0

謝謝,我想我是這樣做的,就好像我有一個hasOne關係 –

2

對於HasMany協會correct format是這樣的:

'User' => array(
    'name' => 'foo', 
    'fname' => 'bar', 
    'email' => '[email protected]' 
), 
'Telephone' => array(
    array(
     'no' => 1, 
     'num' => '0500000050' 
    ) 
) 
+0

感謝您的回覆......有幫助 –

+0

這不完全是這樣。無論是否將它從belongsTo端保存,如果從hasMany Telephone中執行,則這是正確的。Telephone是一組數組。 – Serginho