LoginSignup
13
12

More than 5 years have passed since last update.

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

Posted at

前提

  • 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();
}

参考

13
12
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
13
12