Laravel 5.1 - 对同一个表的渴望加载关系执行多个查询

时间:2017-03-03 23:33:19

标签: php laravel eager-loading

我有一个与同一张桌子有4个关系的模型。

public function driver()
{
    return $this->belongsTo( Admin::class );
}

public function rejectedBy()
{
    return $this->belongsTo( Admin::class, 'rejected_by' );
}

public function reconciledBy()
{
    return $this->belongsTo( Admin::class, 'reconciled_by' );
}

public function updatedBy()
{
    return $this->belongsTo( Admin::class, 'updated_by' );
}

当我急切加载所有4个关系时,Laravel调试栏会向admin表报告4个查询。

我使用的方法是:

$report = Report::find(1)
           ->with('driver', 'rejectedBy', 'reconciledBy', 'updatedBy')
           ->get();

有没有办法将它们组合成一个查询?

1 个答案:

答案 0 :(得分:0)

尝试使用with方法:

$adm = App\Admin::with('driver', 'rejectedBy', 'reconciledBy', 'updatedBy')->get();