【 PHP 】 Laravel編⑨ 「クエリビルダ」「ファサード」 FirE♯546
Laravel編続きです。
【 クエリビルダ 】
SQLを使わずに、DBと接続するための機能。
PHPの構文でDBと接続する。
<メリット>
SQLインジェクション攻撃から守る機能がデフォルトでついている。
<使い方>
TestContorller.php
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB; ・・・・・解説①
class TestController extends Controller
{
//
public function index()
{
$tests = DB::table('tests')->get(); ・・・・・解説②
dd($tests); //処理を止めて変数の中身を表示する
return view('tests.test', compact('values'));
}
}
<解説①>
use Illuminate\Support\Facades\DB;
DBファサードをインポートします。
( ※ ファサード後述 )
<解説②>
$tests = DB::table('tests')->get();
インスタンス化して使用。
DB :: table('テーブル名') と書きます。
<表示結果>
このように、データベースのテーブルの情報が取得できます。
【 ファサード 】
ファサードは、フランス語で「窓口」の意で、あらゆる機能にアクセスするための「窓口」になります。
クエリビルダの際のコードを例にとると、
TestContorller.php
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB; ・・・・・解説①
class TestController extends Controller
{
//
public function index()
{
$tests = DB::table('tests')->get(); ・・・・・解説②
dd($tests); //処理を止めて変数の中身を表示する
return view('tests.test', compact('values'));
}
}
解説①のところで、ファサードを使用しています。
use Illuminate\Support\Facades\DB;
これ、DBというファサードを使えるようになります。
ファサードを定義すると、そのメソッドを、静的に使用できます。
それがこちらのコードです。
$tests = DB::table('tests')->get();
DB :: とありますが、このコロンを二つ繋げての書き方が、静的なメソッドの使用です。
【 まとめ 】
「クエリビルダ」「ファサード」について書きました。
クエリビルダはPHPの構文でDBを操作できるメリットがあります。
実際に使うために次は、何かを作って学ぶ方へ進む予定です。
この記事が気に入ったらサポートをしてみませんか?