Laravel HasManyThrough键

时间:2016-07-10 01:06:06

标签: laravel has-many-through

我有3个型号:User,Program,UserProgram。 UserProgram是它自己的实际模型。

以下是模型在数据库中的外观:

  • 用户
    • id
  • 方案
    • id
  • user_programs
    • user_id
    • program_id

我想在我的程序模型中使用:

function users() {
    return $this->hasManyThrough('App\User','App\UserProgram');
}

但这不起作用。我怎样才能使这种关系有效?

1 个答案:

答案 0 :(得分:2)

hasManyThrough不用于此目的。您需要many-to-many关系。

class Users {
  public function programs() {
    return $this->belongsToMany('App\Program', 'user_programs', 'user_id', 'program_id');
  }
}

class Program {
  public function users() {
    return return $this->belongsToMany('App\User', 'user_programs', 'program_id', 'user_id');
  }
}