2017-06-15 8 views
-2

私は次のセットアップがありますピボットテーブルの値を取得します

|locations|products|reps| 

|id,name |id,name |id,name,phone,etc| 

私も、このピボットテーブル(location_products_rep)作成しました:

|location_id|products_id|rep_id| 

次のコードは、ピボットテーブル内の値を返す呼び出しを

foreach ($reps->repNames as $rep) 
    { 
     echo $rep->pivot->rep_id; 
     echo $rep->pivot->product_id; 
     echo $rep->pivot->location_id; 
    } 

結果:1 1正しいです。しかし、私が必要とするのは、製品名、担当者名、およびロケーション名です。

どのように私はそれを読むためになるだろう:検索結果を:フランクバナナ中国

OR

私はオフより良いピボットtabelのためのモデルを作成し、通常のモデルのように存在して関係を引っ張ることになっているのでしょうか?

UPDATE

私はちょうど

RepFinderPivot::with('repNames', 'repProducts', 'repLocation') 

を使用して、ピボットテーブルのためのモデルを作り、その上の関係を引っ張ってしまった私の元の質問には、立っているが、これは今のところ動作します。

答えて

0

あなたのモデルでbelongsToManyリレーションシップを拡張し、->using(RelatedModel)にチェーンすると、この場合にはより良いと思われます。その結果、中間テーブルを扱う必要はありません。

class Use extends Pivot 
{ 
    /** 
    * The users that belong to the role. 
    */ 
    public function reps() 
    { 
     return $this->belongsToMany('App\User')->using('App\Product'); 
    } 
} 

プロダクトにはrep_idしかないので、これが動作するかどうかはわかりません。

+0

私はピボットテーブルが必要ですか?例えば、1人の担当者が製品 "a"の中国にいるかもしれないが、中国の製品 "b"は販売していないが、中国の他の担当者は製品 "b"を販売しているが、 "a"このようなものはピボットテーブルが必要だと思った。 – ATechGuy

+0

ええ、私はあなたが実際にそうだと思う、私はそれを投稿して以来、より多くのドキュメントを読んできました。しかし、私はまだbelongsToMany()を連鎖することで、必要な場所に連れて行くことができると思います。 – btl

関連する問題