2016-09-13 8 views
0

にコールします。tutorialに従っています。ユーザーは別のユーザーの友人であり、その反対者です。Eloquent致命的なエラー:Eloquent Collection :: addEagerConstraints()を illuminate database Eloquent Builder.phpの行451

私の場合は、関係するテーブルboundTogether_projectsを一緒にバインドする必要があります。

だからProject.phpモデル内の私は、次の雄弁な関係を作成しました:私は次のエラーを取得するため、

<?php 
    /*** Bound together projects ***/ 
    public function projectsBoundToThisOne(){ 
     return $this->belongsToMany('Models\User\Project', 'boundTogether_projects', 'bound_id', 'project_id'); 
    } 
    public function boundTo(){ 
     return $this->belongsToMany('Models\User\Project', 'boundTogether_projects', 'project_id', 'bound_id'); 
    } 
    public function boundTogetherProjects(){ 
     return $this->projectsBoundToThisOne()->wherePivot('bound',true)->get()->merge($this->boundTo()->wherePivot('bound', true)->get()); 
    } 

これは、動作していない。問題は、右来るよう

Fatal error: Call to undefined method Illuminate\Database\Eloquent\Collection::addEagerConstraints() in \illuminate\database\Eloquent\Builder.php on line 451

が見えますこのメソッドを熱心な読み込みと呼びます。それは言うことです:

$projects = Project::with('boundTogetherProjects'); 

雄弁のバージョンは、私が何をしないのです5.1

のですか?どうすれば修正できますか?

答えて

1

boundTogetherProjectsは関係メソッドではない可能性があります。シンプルなことは、あるデータを他のデータにマージした関係から取得します。だから、有効な方法は、次のようになります。

$projects = Project::with('projectsBoundToThisOne','boundTo'); 

し、各プロジェクトのためにあなたがプロジェクトを取得するためにboundTogetherProjectsを実行することができ

$projects->each(function($project) { 
    dd($project->boundTogetherProjects()); 
}); 
関連する問題