我有一个可以有多个项目的用户。
所以我想在User
模型中定义一个关系
public function projects() {
return //some code here
}
问题是,为了达到用户的项目,我需要通过2个不同的表。因此,对于这种情况,无法使用hasManyThough
或hasMany
。
如何设置一对多的关系,通过2个不同的表,而不只是一个(即数据透视表)?
答案 0 :(得分:0)
只需在模型中使用eloquent ..为每个模型定义hasmany / belongssto等等
示例:
$user->table_b->table_c->project()... this just sample.. you can use 'with'
class User extends Model
{
protected appends = ['template'];
public function table_b() {
return $this->hasMany(TableB::class);
}
}
class TableB extends Model
{
public function table_c() {
return $this->hasMany(TableC::class);
}
}
class TableC extends Model
{
public function project() {
return $this->hasMany(Project::class);
}
}
class Project extends Model
{
}