2017-01-06 3 views
0

タイトルから読めるように、雄弁に問題があります。私は基礎とユーザーモデルを持っています。すべてのモデルは基礎と関連している必要があります。私はモデルごとにピボットテーブルを作成したくないので、私は他のモデルの基礎関係関数でユーザモデルの基礎関係関数を呼びたいと思っています。あなたは、サンプルコードを読むことができます:他のモデル関係関数では、関係関数をどのように呼び出すことができますか

class User extends Model{ 

    public function foundations(){ 
     return $this->belongsToMany(Foundation::class); 
    } 

} 

class Personnel extends Model{ 

    public function user(){ 
    return $this->belongsTo(User::class); 
    } 

    public function foundations(){ 
     return $this->user->foundations(); 
    } 

} 

私はこのコード

Personnel::with("foundations")->first(); 

を実行し、間違った基盤を返します。

**編集1 =データテーブルでは、foundations()関数を使用してデータを取得します。だから私はこの=> {モデル}のように使用しなければならない - >このように基礎()

答えて

0

Personnel::with('user.foundations')->first() 

期間は、あなたにも熱心な負荷に関係の関係を望んでいることを示しています。

+0

私は同じ関数で動的モデルを使用するので、私はfoundation()関係関数を使わなければなりません。私はその質問を編集する。 – Jacin

+0

あなたは何を意味するのか分かりません。あなたはコントローラを表示することができますか、それを使用していますか?これ(私の答え)のように読み込むと、 '$ user = $ personnel-> user;のようなユーザを得ることができ、' $ foundation = $ personnel-> user-> foundationのような基礎を得ることができます'を呼び出すと、クエリの結果を' $ personnel'変数に格納します。 – devk

+0

私は動的モデルのデータを次のように取得します: $ this-> eloquentModel-> whereHas( 'foundations'、function($ table){ return $ table-> where( 'slug'、$ this-> foundationSlug); }); $ this-> eloquentModelはモデルを意味します。この関数は動的なので、すべてのモデルで基底関数が必要です。 – Jacin

0

Personnel::with("user.foundations")->first(); 

いけない人事モデルでfoundations()を必要とし、これを試してみてください。

+0

私は同じ関数に動的モデルを使用していますので、foundation()関係関数を使わなければなりません。私はその質問を編集する。 – Jacin

関連する問題