gpt4 book ai didi

laravel - Laravel渴望加载和在哪里

转载 作者:行者123 更新时间:2023-12-05 00:14:52 25 4
gpt4 key购买 nike

已经问了几个问题,但是都没有一个令人满意的解释。

我运行以下查询:

$return = Vacation::whereHas('dates', function ($query) use ($from, $to) {
$query->whereBetween('start_date', [$from, $to]);
})->get();


根据查询日志,将生成以下SQL。返回的结果是正确的,但是JOINed数据有问题。

select * from `vacations` where exists (select * from `vacation_dates` where `vacations`.`id` = `vacation_dates`.`vacation_id` and `start_date` between '2017-08-01 00:00:00' and '2017-08-30 00:00:00')


由于没有JOIN,因此将通过急切的加载添加相关记录,并丢失约束。

该方案涉及具有多个开始/结束日期的 Vacations,我想检查哪些假期在 start_date$start日期范围内具有 $end

如果没有出现,则不返回任何记录。

发生情况时,将使用所有日期(而不只是约束中的日期)返回休假。

我了解它的工作方式/用途,但看不到如何获得所需的信息:带有遵循约束的联接数据的记录。

任何人?

最佳答案

解:

$callback = function($query) use($from, $to) {
$query->whereBetween('start_date', [$from, $to]);
};
$return = Vacation::whereHas('dates', $callback)->with(['dates' => $callback])->get();


Solution is from this SO post

关于laravel - Laravel渴望加载和在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45890719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com