タグ

ブックマーク / d.hatena.ne.jp/hetima (2)

  • CakePHP の findAll で効率良く recursive - d.hetima

    CakePHP 1.1.13.4450 + PHP 5系 + MySQL 4.1系にてテスト Job モデルは com_id フィールドがあって Com モデルに belongsTo Job を一覧表示するときに Com の name フィールドも表示したい Job.idJob.nameJob.com_id 1仕事A1 2きつい仕事2 3楽な仕事1 Com.idCom.name 1会社A 2会社B というデータから、 Job.idJob.nameCom.name 1仕事A会社A 2きつい仕事会社B 3楽な仕事会社A こんな感じの一覧を表示したいわけです。どうするのが効率が良いか。まず、Job モデルのアソシエーションを以下のように設定。 <?php class Job extends AppModel { var $name = 'Job'; var $belongsTo = array(

  • CakePHP で Model を介さずに SQL を呼ぶ - d.hetima

    リードオンリーで単純な値、あるいは複数のテーブルをまたぐ統計、はたまたサイドメニュー等に必ず表示する値など、Model を使わない方が良い気がするデータをどう取得するか。そういう値も Model を使えよという意見もあるだろうし、実際迷っているとこですが、Model を使わずに済ませる方法をメモしておきます。 ちなみに上記の例で Model を使わない理由・メリットを挙げると、 リードオンリーで単純な値(例えば内部処理の if 文のみに使われる真偽値) → 変数だけで済めば軽い 複数のテーブルをまたぐ統計 → どの Model に記述したら良いか迷う サイドメニュー等に必ず表示する値 → 来の処理では使わない Model が毎回ロードされるのを避ける といったところでしょうか。基的にはパフォーマンスの問題です。また、今回のケースでは、AppController と 実際の Contro

  • 1