LoginSignup
1
3

More than 5 years have passed since last update.

FuelPHPのORMをEASYにまとめる

Last updated at Posted at 2018-11-24

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

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や$_belongs_toなど)


$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());
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3