3
1

More than 1 year has passed since last update.

Laravelでデータを扱う方法

Posted at

スクリーンショット 2022-01-19 16.58.54.png

Collection

PHPの配列を拡張したもので、多数の専用メソッドがある(all, combine, countなど)。

  1. use App\Models\Owner; を読み込み。
  2. 例として、
         $c_test = collect([
             'name' => 'てすと'
         ]);

返り値としてCollectionや、standardClassなどがある。

参考
https://readouble.com/laravel/8.x/ja/collections.html
https://techplay.jp/column/630

QueryBuilder

SQLに近いかたちで、selectやwhereなどを使ってDBのデータを扱う。

  1. use Illuminate\Support\Facades\DB; を読み込み。
  2. 例として、
$q_get = DB::table('テーブル名')->select('name', 'created_at')->get();

とすると、指定したテーブルからnameと作成日時のデータを取得することができる。

また、

$q_first = DB::table('テーブル名')->select('name')->first();

とすると、指定したテーブルのカラムの1番目を取得することができる。

行全体が必要ない場合は、valueメソッドを使用してレコードから単一の値を抽出できる。

$email = DB::table('users')->where('name', 'John')->value('email');

id列の値で単一の行を取得するには、findメソッドを使用する。

//配列で取得
$user = DB::table('users')->find(3);

Eloquent(モデル)

データ型が少し異なり、Illuminate\Database\Eloquent\Collectionとなり、SupportのCollectionを継承してさらに機能が増えている。Eloquentモデルを作っておけば、それを使ってQueryBuilderよりも簡単にデータを取得できる。例えば、

$e_all = モデル名::all();

とすると、指定したモデル名のデータを全て取得することができる。

QueryBuilderとEloquentの違いについて
https://cloudsmith.co.jp/blog/backend/laravel/2021/06/1817294.html

3
1
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
3
1