2012-03-27 18 views
0

こんにちは私はhasManyを持つ複数のデータを保存することができるかどうか疑問に思っています:$ this-> Model-> saveAll($ this- >データ)。cakePHP hasMany関数を使ってすべてのデータを保存

array(
    [Post] => Array 
    (
     [0] => Array 
      (
       [title] => title One 
       [content] => desc One 
      ) 

     [1] => Array 
      (
       [title] => title two 
       [content] => desc two 
      ) 

    ) 

だから我々はSAVEALLですべてのポストを保存することができますが、どのような各投稿する場合はhasManyのそれぞれにコメントしている上に与えられた配列に:

例では、このような時に複数の投稿を保存しようとしているということです。私は以下の配列を挿入する必要がある場合はどのように配列には次のようになります。

array(
    [Comment] => Array 
    (
     [0] => Array 
      (
       [comment] => 1st Comment for Post One 
      ) 


     [1] => Array 
      (
       [comment] => 2nd Comment for Post One 
      ) 


     [2] => Array 
      (
       [comment] => 1st Comment for Post Two 
      ) 


     [3] => Array 
      (
       [comment] => 2nd Comment for Post Two 
      ) 

    ) 

どのように私はSAVEALLを()を実行するには、2つの配列を組み合わせることができますが、 ありがとうございます。^_ ^協会と仮定すると、

答えて

2

「ポストは多くのコメントを持っている」"Comments"と呼ばれ、データがあなたを救うために

array(
    'Post' => array(
     array(
      'title' => 'title1', 
      'content' => 'content1', 
      'Comments' => array(
       array('comment'=>'1st comment for post 1'), 
       array('comment'=>'2nd comment for post 1'), 
      ), 
     array(
      'title' => 'title2', 
      'content' => 'content2', 
      'Comments' => array(
       array('comment'=>'1st comment for post 2'), 
       array('comment'=>'2nd comment for post 2'), 
      ), 
     ), 
    ), 
) 

ようになりますようなもの使用することができます

$this->Model->saveMany($data, array('deep'=>TRUE)); 

注意を「深い」オプションにはCakePHP 2.1が必要です。それがなければ、関連するコメントレコードは保存されません。

これはすべて文書番号http://book.cakephp.org/2.0/en/models/saving-your-data.html

+0

で書かれています。 –

関連する問題