タイトルから読めるように、雄弁に問題があります。私は基礎とユーザーモデルを持っています。すべてのモデルは基礎と関連している必要があります。私はモデルごとにピボットテーブルを作成したくないので、私は他のモデルの基礎関係関数でユーザモデルの基礎関係関数を呼びたいと思っています。あなたは、サンプルコードを読むことができます:他のモデル関係関数では、関係関数をどのように呼び出すことができますか
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()関数を使用してデータを取得します。だから私はこの=> {モデル}のように使用しなければならない - >このように基礎()
私は同じ関数で動的モデルを使用するので、私はfoundation()関係関数を使わなければなりません。私はその質問を編集する。 – Jacin
あなたは何を意味するのか分かりません。あなたはコントローラを表示することができますか、それを使用していますか?これ(私の答え)のように読み込むと、 '$ user = $ personnel-> user;のようなユーザを得ることができ、' $ foundation = $ personnel-> user-> foundationのような基礎を得ることができます'を呼び出すと、クエリの結果を' $ personnel'変数に格納します。 – devk
私は動的モデルのデータを次のように取得します: $ this-> eloquentModel-> whereHas( 'foundations'、function($ table){ return $ table-> where( 'slug'、$ this-> foundationSlug); }); $ this-> eloquentModelはモデルを意味します。この関数は動的なので、すべてのモデルで基底関数が必要です。 – Jacin