CakePHP2で1段階以上先のリレーション先にもデータを保存する

Q. CakePHP2でリレーション先までデータを保存したい
A. saveAllメソッドにdeepオプションを渡してあげましょう。 例 ・ArticleがItemを複数持ち、ItemはMetaItemを複数持っている(Naverまとめ的な) Article.php
 array(
            'className' => 'Item',
            'foreignKey' => 'article_id',
            'dependent' => true
            )
    );
}
Item.php
 array(
            'className' => 'MetaItem',
            'foreignKey' => 'item_id',
            'dependent' => true
        )
    );
}
MetaItem.php
 array(
            '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ありがとうございます!!