2012年12月3日月曜日

[CakePHP]saveAll()でhasManyのモデルも同時に保存する際の配列の形式

ここに書いてあるように、

3.7.4.1 関連モデル (hasOne, hasMany, belongsTo)のデータを保存する

Model::saveAll()を利用して、hasManyの関係を持つモデルのデータも保存しよう
とする場合、「modelName.0.fieldName」という形になっていないと
だめなんだね。

最初、「modelName.fieldName」っていう風にしていたら、
外部キーに値がセットされなかった。

例えば、Theme hasMany Tagという関係であれば以下のような
配列にしなきゃいけない、ということ。
Array
(
    [Theme] => Array
        (
            [content] => test33です。
            [explanation] => test33です。
        )
    [Tag] => Array
        (
             [0] => Array 
              (
                    [content]=>test
              )
        )
)
ちなみに、上記では[0]のみだが、[1]、[2]....と入れてあげれば、
同時に複数のTagが保存可能だと思われる。(試してないけど)

ちなみに、belongsToの場合は、 「modelName.fieldName」という形式でOK。

0 件のコメント:

コメントを投稿