Eloquent ORM 远程关联的用法和参数总结
远程一对一
mechanics
id - integer
name - string
cars
id - integer
model - string
mechanic_id - integer
owners
id - integer
name - string
car_id - integer
class Mechanic extends Model
{
/**
* Get the car's owner.
*/
public function carOwner()
{
return $this->hasOneThrough(
Owner::class, // 目标表
Car::class, // 中间表
'mechanic_id', // 中间表和当前表的关联字段
'car_id', // 目标表和中间表的关联字段
'id', // 当前表和中间表的关联字段
'id' // 中间表和目标表的关联字段
);
}
}
远程一对多
projects
id - integer
name - string
environments
id - integer
project_id - integer
name - string
deployments
id - integer
environment_id - integer
commit_hash - string
class Project extends Model
{
public function deployments()
{
return $this->hasManyThrough(
Deployment::class, // 目标表
Environment::class,// 中间表
'project_id', // 中间表和当前表的关联字段
'environment_id', // 目标表和中间表的关联字段
'id', // 当前表和中间表的关联字段
'id' // 中间表和目标表的关联字段
);
}
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
不错