獲取器(查詢建構器15)
取得器
Db類別也可以支援取得器定義,例如:
Db::name('user')->withAttr('name', function($value, $data) { return strtolower($value); })->select();
取得器方法支援傳入兩個參數,第一個參數是目前欄位的值,第二個參數是所有的資料。
上面的程式碼,查詢的資料集資料中的name欄位的值會統一進行小寫轉換。
withAttr方法可以多次調用,對多個欄位定義取得器。
支援對JSON欄位定義取得器,例如:
$user = Db::name('user') ->json(['info']) ->withAttr('info.name', function($value, $data) { return strtolower($value); })->find(1); dump($user);
查詢結果回傳的時候,會自動對info欄位(JSON欄位)的name屬性使用擷取器操作。