PHP
laravel5
laravel5.4

Laravelを使ったデータ操作の備忘録

前提

  • Laravelにはデータを扱うための様々な機能が存在します
  • この記事はクエリビルダとコレクションとEloquentなどに関するゲームアプリを想定したデータ操作の備忘録です

基本知識(戻り値)

項目 戻り値の型
->first Model
->get Illuminate\Database\EloquentのCollection(配列をラップしたもの)
Collection用メソッドの結果 Illuminate\SupportのCollection(配列をラップしたもの)
->toArray array(配列への変換)
->all array(配列への変換)

よく使う関数などの備忘録

// データベースから取得した内容(事前に配列変換が必要)から1つのカラムを指定して、そのカラムだけの配列を生成する
array_column(多次元配列, 抽出したいカラム名);

// 二次元連想配列の結合
$result = ['normal' => $hoge1];
$result += ['special' => $hoge2];

// カラムの中身が特定の値であるレコード数をカウントする(※二次元連想配列の時に使用)
array_count_values($hoge)

// 連想配列への要素の追加(データベース内のJOINは処理が重いので禁止。こちらの方法で結合する)
foreach ($hogeList as $hoge) {
    $hoge['追加するキー'] = 追加したい内容
}

// データが空またはNULLかどうかの判定
if(empty($hoge)) {
    // 空だった時のエラー処理
}

// エラー処理
abort(403, '値は必ず100,000にして下さい');

// コレクションの中から特定のカラムのみを抜き出す
$hogeCollection->pluck('mst_id');

クライアントへ送る結果

  • Laravelでは配列をreturnすると自動的にJSONにしてくれる
  • クライアントに渡したい内容をarrya()関数を使って最終的に結合する
$result = ["hogehoge" => $hogehogeList, "hoge" => $hogeList];

トランザクション

DB::beginTransaction();
try {
    // 行いたい処理を書く  
    DB::commit();
} catch (\Exception $e) {
    $result = ['isSuccess' => false,'message' => "aaaaaaaaaa"];
    DB::rollback();
}

参考