我想知道是否有某种方式来获取数据透视表中两列的值,基于我给出的唯一增量ID每一行。Laravel - 从数据透视表列中获取值,使用数据透视表唯一行ID
我有一个工作模型,一个位置模型和一个应用程序模型。
作业和位置与数据透视表“job_location”有多对多的关系。它包含的两个外键是job_id和location_id。不过,我也给每行添加了一个唯一的递增ID jobloc_id。
如果我只有jobloc_id,我该如何查看其他两列的值?
$jobLoc = $location->jobs->wherePivot('jobloc_id', '=', 1);
return $jobLoc->job_id;
返回“方法wherePivot不存在”即使我已经看到了使用它的人引用。我所拥有的仅仅是jobloc_id,并且正在尝试根据此查找其他两个值,以便我可以完全加载作业和位置以从中提取属性。
任何指针将不胜感激。这是在Laravel 5.3中。
数据透视表并不意味着有一个ID列,你可能试图做一些你不应该做的事情。 – AntoineB
在数据库理论中,数据透视表没有ID列,如@AntoineB所示, 相反,他们的主键是两个关系参与者的组合。 您可以使用两种奇怪的解决方案,提升Job&Location与实体之间的关系,并在其上有两个N-1关系,一个与Job和另一个与位置。 或简单地使用Laravel查询生成器 –
@AntoineB在数据透视表上拥有唯一的ID列没有任何问题。这不是必需的,但它可能有用。我经历过的多个导游都表示他们还会加入一个。我本质上是试图访问<->位置与一个数字的组合。 – Octoxan