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