iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 22
1
Modern Web

如何用Laravel寫一個簡單的部落格網站系列 第 25

[Day 25] 建立註冊的畫面及功能(九) - 列印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也是使用參數查詢的方式來存資料.


上一篇
[Day 24] 建立註冊的畫面及功能(八) - Laravel記錄Log
系列文
如何用Laravel寫一個簡單的部落格網站25

尚未有邦友留言

立即登入留言