どうもー、ざっくです。

寒くなってきて朝、布団からでるのがつらいですね。

起きる少し前から暖房をつけるとすぱっと起きれますのでどうしても起きられない方は実践してみてはどうでしょうか。

さて、今日はfind()について少しだけ書いていこうと思います。

大まかな使い方はご存知の方も多いですし、基礎の部分ですしね!!

 

・joinの仕方

'joins' => array (
    array (
        'type' => 'LEFT',
        'table' => 'profiles',
        'alias' => 'Profile',
        'conditions' => 'User.id = Profile.user_id'
    ),
    array (
        'type' => 'LEFT',
        'table' => 'tables',
        'alias' => 'Table',
        'conditions' => 'User.id = Table.user_id'
        )
    )

 

このようにUserテーブルとのjoinに必要な情報をfindの引数に設定していきます。

これでUserテーブルをfind()した場合、ProfileテーブルとTableテーブルの情報が取得できます。

・recursiveとはなんだろう?

これはアソシエーションの設定をしていた場合に自動で取得してくれる範囲を絞るために必要になります。

 

  • -1 → joinはせず、Userテーブルの情報のみ取得する。
  •  0 → belongsToしているテーブルとUserテーブルの情報を取得する。
  •  1 → belongsToとHasManyをしているテーブルの情報とUserテーブルの情報を取得する。
  •  2 → Userテーブルとアソシエーションを設定しているテーブルの関連テーブルの情報も取得する

だいたいこんな感じです。

単一のテーブルにそのテーブルの情報だけ必要な場合は-1を設定すればいいですね!

・listでセレクトボックスのデータを取得する。

    $select_data = $this->Model->find('list');

 

このようにfirstやallなどを記述していた部分にlistと書いてあげるだけでkey:valueの形でデータを取得してきてくれます。

今回はこのへんにして次回はORやAND、 INなどをつかったfind()の仕方を書いていきます。

それでは、また〜〜!

お見積いたします。どんなことでも、お気軽にご相談ください。

お客様のご要望とご予算に応じて最適なソリューションをご提案いたします。
VRの開発やアプリ開発以外でも、ぜひ一度ご相談ください。