如何渴望对同一张表加载多个belongsTo关系?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何渴望对同一张表加载多个belongsTo关系?相关的知识,希望对你有一定的参考价值。
[使用以下模型,用户与汽车的关系是2倍。两者都指向同一张表,但是使用不同的字段(daily_car_id + weekend_car_id):
class User extends Model
public function dailyCar() {
return $this->belongsTo(Car::class, 'daily_car_id', 'id');
}
public function weekendCar() {
return $this->belongsTo(Car::class, 'weekend_car_id', 'id');
}
}
除了渴望加载之外,这一切都很好用:
User::with(['dailyCar', 'weekendCar'])->findOrFail($id);
期望
# 10 is the weekend car id and 12 is the daily
SELECT * FROM `car` WHERE `car`.`id` in (10, 12)
实际结果(不正确意外)
# 10 is the weekend car id and 12 is the daily
SELECT * FROM `car` WHERE `car`.`id` in (10)
SELECT * FROM `car` WHERE `car`.`id` in (12)
当对同一个表使用多个belongsTo关系时,是否有一种渴望加载的方法?
答案
您可以更改对此的急切加载:
$user = User::find($id);
$car = Car::where('id', $user->dailyCar->id)->where('id', $user->weekendCar->id)->get();
以上是关于如何渴望对同一张表加载多个belongsTo关系?的主要内容,如果未能解决你的问题,请参考以下文章