ゲッター(QueryBuilder15)
Getter
Db クラスは、次のようなゲッター定義もサポートできます。
Db::name('user')->withAttr('name', function($value, $data) { return strtolower($value); })->select();
ゲッター メソッドは、受信する 2 つのメソッドをサポートします。パラメータの場合、最初のパラメータは現在のフィールドの値、2 番目のパラメータはすべてのデータです。
上記のコードでは、クエリされたデータ セットの名前フィールドの値は一律に小文字に変換されます。
withAttr メソッドを複数回呼び出して、複数のフィールドのゲッターを定義できます。
JSON フィールドのゲッターの定義をサポートします。例:
$user = Db::name('user') ->json(['info']) ->withAttr('info.name', function($value, $data) { return strtolower($value); })->find(1); dump($user);
クエリ結果が返されると、情報フィールド (JSON フィールド) の name 属性に対してゲッター操作が自動的に使用されます。