2016-07-10 6 views
0

私は3つのモデルがあります:ユーザー、プログラム、ユーザープログラム。 UserProgramはそれ自身の実際のモデルです。ここでLaravel HasManyThrough Keys

は、モデルをデータベースにどのように見えるかです:

  • ユーザー
    • ID
  • プログラム
    • ID
  • user_programs
    • のuser_id
    • は、私は私のプログラムのモデルにしたいと思い

PROGRAM_ID:

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

をしかし、これは動作しません。この関係をどのように機能させることができますか?

答えて

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'); 
    } 
} 
+0

ありがとうございました!これは非常に役に立ちます! – Aaron