無涯教程 - Laravel 8 獲取SQL語句

這個簡單的文章演示了Laravel 8中獲取上次執行的SQL語句。將使用toSql(),DB ::enableQueryLog()和DB ::getQueryLog()在laravel 8中打印最後一個SQL查詢。

因此,讓我們看看下面的示例,並根據需要使用它們。

示例1:

控制器代碼:

<?php
  
namespace App\Http\Controllers;
  
use App\Models\User;
  
class UserController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function redirectToGoogle()
    {
        $query = User::select("*")->toSql();
            
        dd($query);
    }
}

輸出:

select * from `users`

示例2:

控制器代碼:

<?php
  
namespace App\Http\Controllers;
   
use App\Models\User;
use DB;
    
class UserController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function redirectToGoogle()
    {
        DB::enableQueryLog();
  
        $users = User::select("*")->get();
        $quries = DB::getQueryLog();
  
        dd($quries);
    }
}

輸出:

array:1 [▼
  0 => array:3 [▼
    "query" => "select * from `users`"
    "bindings" => []
    "time" => 4.25
  ]
]

示例3:

控制器代碼:

<?php
  
namespace App\Http\Controllers;
   
use App\Models\User;
use DB;
    
class UserController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function redirectToGoogle()
    {
        DB::enableQueryLog();
            
        $users = User::select("*")->get();
        $query = DB::getQueryLog();
  
        $query = end($query);
  
        dd($query);
    }
}

輸出:

array:3 [▼
  "query" => "select * from `users`"
  "bindings" => []
  "time" => 2.07
]

https://www.learnfk.com/article-how-to-get-last-executed-query-in-laravel-8example

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章