【发布时间】:2020-06-14 15:24:40
【问题描述】:
我有 2 张桌子,subscriptions 和 subscription_options 就像这样。
subscriptions
------------------------
id |subscription_name
------------------------
1 |silver
2 |gold
----------------------------------------------------
subscription_options
----------------------------------------------------
id |subscription_id |price |duration (months)
1 |1 |10 |3
2 |1 |20 |6
3 |2 |40 |3
4 |2 |50 |6
subscriptions 与subscription_options 具有一对多关系
// Subscription model
public function options() {
return $this->hasMany('App\SubscriptionOption', 'subscription_id');
}
我想为我的两个订阅获得最便宜的价格,所以我应该得到 2 行 subscription_options.id 和 1 和 3 以及它们的所有列。我将如何用 laravel eloquent 做到这一点?
这些是我尝试过的东西,它们要么给了我一个错误,要么返回了一些接近我正在寻找的东西
Subscription::with('options')->min('price')->get();
Subscription::with(['options' => function($query) {
$query->min('price');
}])->get();
【问题讨论】: