獲取器(查詢建構器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屬性使用擷取器操作。