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

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

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

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

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

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

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

それではスタート!

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

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

  • userテーブル
idnameage
1田中28
2山田30

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

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

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

SELECT name FROM user WHERE age = '28';Code language: JavaScript (javascript)

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

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

Eloquentで取得してみる

use App\Models\User;

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

これで取得できます!

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

use App\Models\User;

$user_info = User::where('age', '28');
echo $user_info;Code language: PHP (php)

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

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

use App\Models\User;

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

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

まとめ

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

意外と簡単だ~

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA