Laravel 8关系,每个表中有两列

  • 本文关键字:两列 关系 Laravel laravel-8
  • 更新时间 :
  • 英文 :


我在Laravel 8项目中有多个DB连接,我无法修改其中一个,这主要用于ROR项目。

我需要从两个表中获取数据,只有当id1, id2列在两个表中具有相同的值。我在谷歌上找不到任何东西。

我尝试了一些例子,无论是给我N+1查询问题或第二个表o/p总是空

function example()
{
return $this->belongsTo(Model::class, 'id1', 'id1')->where('id2', $this->id2);
}
function example()
{
return $this->belongsTo(Model::class, 'id1,id2', 'id1,id2');
}

我想到了一个解决方案https://laravel.io/forum/06-26-2014-one-to-one-relationship-with-two-fieldscolumns-connection-how

我使用join与Laravel关系查询:

HouseHold::where("printedcardno","=","17130103-0124")->with(array('members' => function($query)
{
$query->leftJoin('PatientCard', function($join)
{
$join->on('PatientCard.HouseHoldID', '=', 'shp_members.HouseHoldID')
->on('PatientCard.MemberID', '=', 'shp_members.MemberID');

});
}))->get()->take(10)->toArray();

我认为这应该是一个很好的方法,因为它固定了N+1查询问题,并得到所需的o/p。

最新更新