ユアマイスター株式会社エンジニアブログ

ユアマイスター株式会社のエンジニアが日々徒然。

妙技 .つなぎ(cakephp)

みなさんこんにちは!エンジニアインターン奮闘中の竹本です。 今日はみなさんに大切なお知らせがあります。なんと私タケモトは五月でユアマイスター株式会社をやめることになりました。寿退社です照 というのは嘘でございまして、自分の将来の為に海外で修行してこようと思い退社することとなりました。 このブログ担当も残り3回となりました(6月1日は更新予定)。では本日も行きましょう!竹本のエンジニアブログ!

前回の続き

みなさん、前回の竹本ブログの内容を覚えていらっしゃいますかね?ー覚えてるわけないですよね。。 ざっと復習するとcakePHPで親・子・孫テーブルが混在する状況で親テーブルに保存して、アソシエイトすることで孫テーブルまで保存する方法を紹介しました。詳しくは下記のブログをご覧ください。

http://yourmystar-engineer.hatenablog.jp/entry/2017/05/07/234055

結局僕は親テーブルを保存した後で、もう一度子テーブルで保存するという作業をコードとして記述するという結論に至ったのですが。。。

.つなぎ

ドットつなぎです! これはどう行いますかというとnewEntityでデータを保存する場合

$parent ->$this->ParentsTable->newEntity([
    第一引数,
    [
        'associated' =>[
            'ChilidTable',
            'ChildTable.GrandChildTable'
                                  ] 
    ]
]);

この後、孫テーブル独自でレコードを記録する処理を行う

$grandChild -> $this->Child->GrandChild->newEntity([
    'type' => $otherChild->otherGrandChild->type
]);

.つなぎをすれば確実にいけます

ちなみに今回とても参考にさせてもらったサイトがありますので、是非皆さんもご覧ださい!

qiita.com

以上、今週の竹本ブログでした!