hasMany()で取得できる複数レコードのうちあるカラムの最小、または最大の1レコードを取得する方法。
// call元
$category->min_age->age;
call元は、hasMany()と同じ感じでコールすればよい。
// Categoryモデル
public function min_age()
{
$categoryAge = $this->hasOne(CategoryAge::Class)->ofMany('age', 'min');
return $categoryAge;
}
hasMany()をhasOne()にし、ofMany(対象カラム, ‘min’ or ‘max’)にすればOK。
注意点
オートインクリメントのidカラムが存在しないとエラーとなり使えない。
フレームワークの恩恵を受けるには、何も考えずとりあえず「全てのテーブルにオートインクリメントのidカラムを用意する」というテーブル設計が好きになれないが仕方がない。
ちなみにlatestOfMany()で最新、oldestOfMany()で最古の1レコードを返してくれる。