[Day 25] 建立註冊的畫面及功能(九) - 列印Eloquent SQL語法

建立註冊的畫面及功能(九) - 列印Eloquent SQL語法

因為Laravel的ORM很方便,
我們幾乎不用寫SQL語法,
但是萬一我們想要知道Laravel用了什麼語法,
或是萬一發生錯誤,
或是需要通過優化SQL語法來提升性能時,
我們需要知道Laravel到底用了什麼語法,
來幫助我們判斷是否需要做修改,
或是應該要怎麼修改,
當然這一點Laravel也幫我們想好了.

Laravel有提供DB::getQueryLog()方法,
可以印出目前執行的SQL語法有哪些,
但是為了程式的效率,
這個功能預設是沒有開放的,
所以在要取得SQL語法之前,
必須先使用DB::enableQueryLog();啟用紀錄SQL語法的功能.
app/Http/Controllers/UserAuthController.php的signUpProcess方法

//處理註冊資料
public function signUpProcess()
{
    //前面省略
    $input['password'] = Hash::make($input['password']);

    //啟用紀錄SQL語法
    DB::enableQueryLog();

    //新增使用者資料
    User::create($input);

    //取得目前使用過的SQL語法
    Log::notice(print_r(DB::getQueryLog(), true));

    //後面省略
}

記得要引用

use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;

我們再執行一次表單,
再進入storage/logs底下今天的Log檔案裡面查看.
https://ithelp.ithome.com.tw/upload/images/20201002/20105694O9QKTjktBR.png

可以看出Laravel也是使用參數查詢的方式來存資料.