FuelPHP
ORM

FuelPHPのORMをEASYにまとめる


よく使うやつだけ、ぱぱっとまとめておく


SELECT


入れ子


$Entities = Model_XXX::find('all', array(
'where' => array(
array('yyy_zzz', $hoge),
),
));


メソッドチェーン(こっちの方が見やすくて推奨)


// 1レコード取得時
$Entity = Model_XXX::query()
->where('aaa_bbb', '=', $hoge)
->where('xxx_zzz', '=', 0)
->get_one();

// 複数レコード取得時
$Entities = Model_XXX::query()
->where('aaa_bbb', '=', $hoge)
->get();


JOIN

Modelクラスで

リレーションを定義すれば、JOINできる($has_manyや$_belongstoなど)


$Entity = Model_XXX::query()
->related('Modelのプロパティ')
->get();


INSERT


$data['hoge'] = $this->hoge;
$data['huga'] = $target['foo'];
// インスタンスの作成
$entity = Model_XXX::forge ( $data );
// INSERT実行
$entity->save();


UPDATE


$entity = Model_xxx::query()
->where('hoge', '=', $target['fuga'])->get_one();
$entity->foo = 'bar';
$entity->save();


DELETE


// 1レコード取得後削除
Model_yyy::query()
->where('hoge', '=', $hogehoge)
->where('fuga', '=', $fugafuga)
->get_one()
->delete();

// 複数レコード取得
$entities = Model_xxx::query()
->where('foo', '=', $foofoo)
->where('bar', '=', $barbar')
->get();
// 件数分、削除
foreach($entities as $entity) {
$entity->delete();
}


ログ出力(おまけ)

直前の発行されたクエリを取得できる


\Log::debug(DB::last_query());