【Laravel8.x Eloquent】指定したカラムだけselect文で取得。

Laravel

はい、今回はLaravelでselect文を使いたいと思います。

実際LaravelではSQLではなくて、Eloquentを使っていきますね。

EloquentとはできるだけSQLを書かないでDBにアクセスできるような仕組みのことを言います。

そのほかにもいろいろ調べたい場合は公式 Laravel8.x クエリビルダより確認してみてくださいね。

Eloquentは、SQLをできるだけ書くことなく、簡潔にデータベースにアクセスできるような仕組みです。
前回のマイグレーションの章ではテーブルの作成を行いましたが、そこにデータを保存したり、取り出したり、削除したりできます。

参考 https://tech.windii.jp/backend/laravel/eloquent-model#LaravelEloquent

それではスタート!

どんなことがしたいのか?

例えば以下のようなテーブルがあるとき

  • userテーブル
id name age
1 田中 28
2 山田 30

28歳の人の名前だけを取得したいとします。

この場合は、田中さんを取得したいということですね。

そこで、SQLを使うと以下のようになります。

SELECT name FROM user WHERE age = '28';

そしたら、田中が取得できます。

これをEloquentでやりたいわけです!

Eloquentで取得してみる

use App\Models\User;

$user_name = User::where('age', '28')->first(['name']);
echo $user_name

これで取得できます!

もし、田中さんのすべての情報が欲しい時は以下になります。

use App\Models\User;

$user_info = User::where('age', '28');
echo $user_info;

もし、データ自体は全て取得するけど、出力は特定のカラムだけ!

って時には以下になります。

use App\Models\User;

$user_info = User::where('age', '28');
echo $user_info -> name;

これで田中だけ出力されます。

まとめ

カラムの指定もfirst(['???'])使えばいけるのね~

以外と簡単。

コメント

タイトルとURLをコピーしました