Laravel Eloquent,虽然有2个表,但它有许多关系

时间:2017-10-03 02:02:55

标签: php laravel eloquent

我有一个可以有多个项目的用户。

所以我想在User模型中定义一个关系

public function projects() {

  return //some code here

}

问题是,为了达到用户的项目,我需要通过2个不同的表。因此,对于这种情况,无法使用hasManyThoughhasMany

如何设置一对多的关系,通过2个不同的表,而不只是一个(即数据透视表)?

1 个答案:

答案 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
{

}