首页 > 解决方案 > Laravel 急切加载 SQL?

问题描述

我有以下代码用于使用预加载检索 Reservation 和 ReservationDetail:

$reservationsDetail = ReservationDetail::with('reservation')
            ->whereDate('date_res', '=', Carbon::today()->toDateString())
            ->toSql();

dd($reservationsDetail);

在浏览器上打印此 SQL 查询:

select * from `tbl_reservation_detail` where date(`date_res`) = ?

它不应该也显示对 Reservation 表的检索(tbl_reservation)吗?我怎样才能确保它实际上正在检索两者(即急切加载按预期工作)?

顺便说一句,我在 ReservationDetail 模型上有一个 BelongsTo 关系:

public function reservation(){
        return $this->belongsTo('App\Reservation', 'id_reservation');
    }

标签: laraveleager-loading

解决方案


检索关系是第二个查询。你可以通过安装Laravel Debugbar来确保它工作正常。它显示了所有已执行的查询。dd(DB::getQueryLog());也可以帮助你。


推荐阅读