2016-10-22 8 views
0

同じクラスで多対多リレーションシップを実装したいと思います。コースには必須コースがあります。アタッチするのはコントローラーからではなく、コントローラーからです。attach()はコントローラーではなくコントローラーから作業します

$course->pre_reqs()->attach(int); // works from tinker 

//does not work from controller (I checked that $course is the right object) 
$course = DB::table('courses')->where('id', $id1)->first(); 
$course->pre_reqs()->attach(10); 

//from model 
public function pre_reqs() 
{ 
    return $this->belongsToMany('App\Course', 'pre_req', 'course_id', 'pre_req_course_id'); 
} 

ピボットテーブルは、ティンカーで動作します。

エラーが未定義のメソッドへ

コールが

+0

を試してみてpre_reqsでは、それが唯一のタイプミスではないですか?最初に接続してからpre_reqs関数を追加しますが、コントローラーではまずpre_reqs()を呼び出して接続してください。 – Kyslik

+0

これは投稿のタイプミスです。それは今正しいです。 – rur2641

答えて

1

はモデルクラスで

$course = Course::where('id', $id1)->first(); 
$course->pre_reqs()->attach(10); 
関連する問題