Laravel のクエリビルダ｟マニュアルのマニュアル｠

##    はじめに

  __<font color="blue">　【PHP】</font>のWebアプリケーションフレームワークである__
  __<font color="blue">　【Laravel = ララベル】</font>のマニュアルを確認しました。__

##### Laravel公式ドキュメントの日本語訳サイトは以下を参照。
https://readouble.com/laravel/11.x/ja/queries.html


# <font color="blueviolet">__データベースクエリの実行__</font>

 テーブルからの全行の取得

 ```php
<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;
use Illuminate\View\View;

class UserController extends Controller
{
    public function index(): View
    {
        $users = DB::table('users')->get();

        return view('user.index', ['users' => $users]);
    }
}

 ````
【確認】全てをselect
 ````
<?php

namespace App\Http\Controllers;
　⇒　名前空間 ※1

use Illuminate\Support\Facades\DB;
use Illuminate\View\View;
　⇒　名前空間の一部を取得 ※2

class UserController extends Controller
{

　⇒　Controllerクラスを継承したクラスを定義 ※3

 
    /**
     * アプリケーションの全ユーザーをリスト表示
     */
    public function index(): View
    {
        $users = DB::table('users')->get();

    // 記述方法： DB::table('テーブル名')->get(getメソッドの引数);
       ⇒　etメソッドの引数　'フィールド名', 　を
       　　指定しなければ全てのフィールドが取得される

        return view('user.index', ['users' => $users]);
    }
}

````




 ※1 [namespace は名前空間とも呼ばれ、項目をカプセル化](https://www.sejuku.net/blog/23555)
 ※2 [namespace で定義されたものを使うにはuse、つまりインポートという機能を使う](https://qiita.com/tadsan/items/15657be653f6c1902d15)  
 ※3 [LaravelのControllerクラスって何やってるの？](https://qiita.com/shinnoki/items/237dff2d535ede228d2c)  



---------------------------------------------------------------------------

 テーブルから単一の行/カラムを取得する
   ⇒　first()で、１レコードのみを取得

 ```php

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

return $user->email;

 ````
【確認】first()で、１レコードのみを取得
 ````

$user = DB::table('users')->where('name', 'John')->first();
　⇒　nameカラムがJohnのレコードを1レコードのみ取得 ※4

return $user->email;
　⇒　このメソッドは、単一のstdClassオブジェクトを返します。 ※5



````

  ※4 [【laravel】データベースの操作：DBファサード編](https://qiita.com/gone0021/items/f1e8223c94dbaab22fca)  
  ※5 [Laravelのクエリビルダについて](https://qiita.com/mackeyTA/items/26e02d64a0aea5e03ce9)  
 


---------------------------------------------------------------------------

 テーブルから単一の行/カラムを取得する
   ⇒　value で、１カラムのみを取得

 ```php

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

 ````
【確認】first で、１レコードのみを取得
 ````

$email = DB::table('users')->where('name', 'John')->value('email');
　⇒　nameカラムがJohnのレコードのうち、emailカラムの値を取得 ※6

````

  ※6 [Laravelでデータを扱う方法](https://qiita.com/SadomaruP/items/f32e99151470ca6ccfad)  

  
  
  
  
---------------------------------------------------------------------------

 テーブルから単一の行/カラムを取得する
   ⇒　【確認】find で、id列の値で単一の行を取得

 ```php

$user = DB::table('users')->find(3);

````

---------------------------------------------------------------------------

 カラム値のリストの取得
   ⇒　指定したキーの値をコレクションから取得

 ```php

use Illuminate\Support\Facades\DB;

$titles = DB::table('users')->pluck('title');

foreach ($titles as $title) {
    echo $title;
}

 ````
【確認】指定したキーの値をコレクションから取得
 ````

use Illuminate\Support\Facades\DB;

$titles = DB::table('users')->pluck('title');
　⇒　コレクションから役割名(title)を取得※7

foreach ($titles as $title) {
    echo $title;
}


````
  ※7 [【laravel】データベースの操作：DBファサード編](https://qiita.com/gone0021/items/f1e8223c94dbaab22fca) 

---------------------------------------------------------------------------

 カラム値のリストの取得
   ⇒　指定したキーの値をコレクションから取得

 ```php

$titles = DB::table('users')->pluck('title', 'name');

foreach ($titles as $name => $title) {
    echo $title;
}

````