我有以下设置:
|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 1,这是正确的。但我需要的是产品名称,代名和位置名称。
我如何阅读:结果:Frank Bananas中国
OR
我最好为枢轴表制作一个模型,并像普通模型那样拉动关系吗?
更新
我最终只是为数据透视表制作了一个模型,并使用
拉动关系RepFinderPivot::with('repNames', 'repProducts', 'repLocation')
我原来的问题仍然有效,但现在可以使用了。
答案 0 :(得分: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');
}
}
不确定这是否有效,因为Product只有rep_id。