Q. CakePHP2でリレーション先までデータを保存したい
A. saveAllメソッドにdeepオプションを渡してあげましょう。 例 ・ArticleがItemを複数持ち、ItemはMetaItemを複数持っている(Naverまとめ的な) Article.phparray( 'className' => 'Item', 'foreignKey' => 'article_id', 'dependent' => true ) ); }Item.phparray( 'className' => 'MetaItem', 'foreignKey' => 'item_id', 'dependent' => true ) ); }MetaItem.phparray( 'className' => 'Item', 'foreignKey' => 'item_id' ) ); }保存するデータの構造array( 'Article' => array( ... ), 'Item' => array( (int)0 => array( ... ), (int)1 => array( ... 'MetaItem' => array( (int)0 => array( ... ), (int)1 => array( ... ) ) ) ) )使うメソッド$this->Article->saveAll($data, array('deep' => true));・コメント なぜかリレーションが1段階先しか保存してくれない!!って困ったのでぐぐってみるとdeepオプションというのがあるじゃないですか! ということで早速使ってみると見事解決。よかったよかった〜〜 適切なデータ構造を作って渡してあげれば適当に処理してくれるCakePHPありがとうございます!!
詳解CakePHP辞典―2.0/2.1/2.2/2.3対応
posted with amazlet at 14.01.22
滝下 真玄
秀和システム
売り上げランキング: 112,599
秀和システム
売り上げランキング: 112,599