【问题标题】:Laravel Eloquent, set has many relation though 2 tablesLaravel Eloquent,集合有很多关系,虽然 2 个表
【发布时间】:2017-10-03 02:02:55
【问题描述】:

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

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

public function projects() {

  return //some code here

}

问题是要访问用户的项目,我需要通过 2 个不同的表。所以对于这种情况,不能使用hasManyThough 或只使用hasMany

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

【问题讨论】:

  • 能不能把数据库schema放得更清楚些?
  • 通过 2 个不同表的一对多关系 有点不清楚,不,它完全不清楚.. 可以指定.. 就像它 A (1) -- - (n) B (1) --- (n) C 或.. 别的什么?读过HasManyThrough

标签: php laravel eloquent


【解决方案1】:

只需在您的模型中使用 eloquent.. 只需为每个模型定义 hasmany/belongsto 等

样本:

$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
{

}

【讨论】:

    猜你喜欢
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 2019-06-23
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多