我有两个由数据透视表链接的表(使用自定义迁移):
兴趣表:
ID | label
人员表:
ID | label
PersonHasInterest表(自定义迁移):
InterestID | PersonID | notes
如何从数据透视表中获取所有记录(加入了人员和兴趣)?我不想获得一个人或所有有兴趣的人的所有兴趣,但是所有参与(带有联接)的数据透视表。
答案 0 :(得分:0)
尝试定义这样的枢轴模型:
<?php
...
use Illuminate\Database\Eloquent\Relations\Pivot;
...
class PersonHasInterest extends Pivot
{
protected $table = '...'; // table name
}
然后使用它:PersonHasInterest::all();
答案 1 :(得分:0)
即使Pivot
扩展Model
,也无法在Pivot
- 对象上调用标准模型函数。 Issue on Github
我提出的是使用DB-Facade执行select语句,如下所示:
DB::table('person_has_interest')
->join('interest', 'person_has_interest.interest_id', '=', 'interest.id')
->join('person', 'person_has_interest.person_id', '=', 'person.id')
->get(); // further manipulation like select possible