【问题标题】:Laravel eager loading SQL?Laravel 急切加载 SQL?
【发布时间】:2018-10-15 22:26:29
【问题描述】:

我有以下代码用于使用预加载检索 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');
    }

【问题讨论】:

    标签: laravel eager-loading


    【解决方案1】:

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

    【讨论】:

    • 你是对的,它使用 tbl_reservation 上的 IN 语句进行第二次查询。不错的包顺便说一句,谢谢。
    • 没问题。当然,我猜你现在会在每个项目中使用这个包。
    猜你喜欢
    • 2014-08-13
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    相关资源
    最近更新 更多