讓lumen的dd() dump()像laravel一樣優雅
composer require symfony/var-dumper
獲取執行的sql語句
- 可檢視sql where引數等
public function index()
{
DB::connection()->enableQueryLog(); // 開啟查詢日誌
DB::table(`posts`)->paginate(5); //要檢視的sql
$queries = DB::getQueryLog(); // 獲取查詢日誌
dd($queries); // 即可檢視執行的sql,執行的時間,傳入的引數等等
}
- 只能檢視簡單的sql不能看到傳入的引數
DB::table(`posts`)->toSql();
查詢sql記錄
如果,你想要將日誌檔案儲存在 storage/logs 目錄中。需要更新: app/Providers/AppServiceProvider.php 裡的 boot() 函式
<?php
namespace AppProviders;
use IlluminateSupportServiceProvider;
use DB;
use Log;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
// 新增程式碼
DB::listen(function ($query) {
Log::info(
$query->sql,
$query->bindings,
$query->time
);
});
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
Laravel 如何在模型事件中獲取某欄位修改前的值
Issue::saving(function(Issue $issue){
if ($issue->isDirty(`title`)) {
$user = Auth::user()->username;
$oldTitle = $issue->getOriginal(`title`); // 原始值
$newTitle = $issue->title; // 新值
ActionLog::log("$user 把標題 $oldTitle 修改為 $newTitle");
}
});