0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Laravel】Laravel Query Biulderとは

Last updated at Posted at 2023-03-03

LaravelのQuery Builderとは

普段何気なく使用しているlaravelのクエリビルダ。

よくlaravelで使用するクエリビルダを簡単にまとめてみた。

※正確ではないかもしれないが、ご理解を。

※簡単に今回はcontollerを作成せずにroutes/web.phpで行う。

Query Builder(クエリビルダ)とは

DB操作をしやすくしたlaravelの機能。

通常、素のPHPではSQL文を書いてDB操作を行うが

laravelではクエリビルダを使用すればSQL文をベタで書く必要がなくなる。

※といってもSQLがわからないとなると理解度は落ちるかもしれない。

SQL文がある程度かける人がクエリビルダを使用したときに

より便利と感じるイメージにある。

クエリビルダを使用するメリット

上記の通り、DB操作が楽になった。

SQL文が最悪わからなくてもLaravelだけで生きていくのであれば

laravelのお作法を覚えておけば

最悪大丈夫かもしれない。

またサーバー攻撃からの安全性もある程度カバーされているらしく

自分でセキュリティの部分をそこまで気にしなくて使えるのもメリット。

もちろんフレームワークに依存して頼りすぎるのも良くないため

セキュリティのことは意識しなければならないが。。。

クエリビルダの使用方法

クエリビルダを使用するファイル(ControllerまたはModel等)で

以下のuse文を記載する。

以下は例)

App/Http/Controllers/DataController.php

use Illuminate\Support\Facades\DB;

これで準備はOK。

いざ使用することになる。

該当テーブルの全てを取得する方法。

今回は例として

「sample」テーブルを用意して実践。

routes/web.php

use Illuminate\Support\Facades\DB;

--省略--

 DB::table('sample')
 ->get();


これを変数に入れてdd()関数を使用して画面上で確認してみる。

スクリーンショット 2023-03-03 114705.png

データベースも確認してみると取得した情報と差異はなさそうだ。

スクリーンショット 2023-03-03 114855.png

これで取れそうなことがわかる。

条件を指定する where()

テーブルはそのまま「sample」テーブル。

データベースのテーブルレコードは以下のものと仮定する。

スクリーンショット 2023-03-03 114855.png

このレコードの「idが2」のレコードを取ってきたいとする。

※morimoriさん

routes/web.php

use Illuminate\Support\Facades\DB;

--省略--

DB::table('sample')
->where('id','=','2')
->get();

またdd()関数を使用して画面上で確認する。

スクリーンショット 2023-03-03 115816.png

idが2の該当するレコードだけを引っ張ってこれた。

特定のカラムを取得する select()

テーブルはそのまま「sample」テーブル。

データベースのテーブルレコードは以下のものと仮定する。

スクリーンショット 2023-03-03 114855.png

上記の続きで今度はidが2の名前だけを取得したいとする。

新たに使用するメソッドはselect()。

その場合は下記の通りになる。

routes/web.php

use Illuminate\Support\Facades\DB;

--省略--

DB::table('sample')
->where('id','=','2')
->select('name')
->get();

またdd()関数を使用して画面上で確認。

スクリーンショット 2023-03-03 120542.png

名前だけを取れた。

まとめ

今回は初歩中の初歩をまとめたが

クエリビルダはもっと便利なものがたくさん存在する。

徐々に使用できる幅を増やしていくための第一歩として他の人にも参考になればと思う。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?