Laravel关系关系

Laravel relations relation

我对 Laravel Eloquent 模型和关系有理解上的问题。

我有一个用户 table user。这些用户可以添加汽车牌照,我将其保存在 user_plates 中。我有一个包含汽车型号和类型的数据库。 table 名字是 cars。我有模型 App\User、App\UserPlates 和 App\Car。

user_plates table 有字段 id,plate,user_id,car_id。 我保存车牌、关联用户(在 user_id 中)和所选汽车(car_id(id 来自 table 汽车))

我将 plates()belongTo 功能添加到我的用户模型中,它已经成功 returns 与该用户关联的所有板块。但是现在我想获得关联的汽车(car_id inside user_plates)。如何使用 Eloquent 实现此目的?汽车table与用户table没有任何联系,只有user_plates有一个car_id和一个user_id。

我需要实现这个: User -> Plates (can be multiple) -> Plate -> Car。我知道如何使用简单的 MySQL 连接来实现这一点,但我想使用 Eloquent 来正确完成。感谢您的帮助!

Laravel: 6.4.0

因此,如果您的数据库设置为...

users   user_plates   cars
-----   -----------   ----
id      id            id
etc.    plate         etc.
        user_id
        car_id

您的模型设置为...

// in model: User
public function user_plates() 
return $this->hasMany('UserPlate');  // fill out fully qualified name as appropriate…

// in model: UserPlate
public function user() 
return $this->belongsTo('User');

public function car()
return $this->belongsTo('Car');

// in model: Car
public function user_plates()
return $this->hasMany('UserPlate’);

到 return 属于用户 $id 的汽车集合,您应该能够 运行:

$cars = User::findOrFail($id)-> user_plates->pluck('car');