我正在尝试为我的调度系统获取可用时间。我知道如何使用普通 SQL 查询来完成此操作,但在将查询转换为 Laravel Eloquent 时遇到问题。我的查询如下所示
$query = "SELECT * FROM schedules WHERE (time_start BETWEEN '$start_datetime' AND '$end_datetime') OR (time_endBETWEEN '$start_datetime' AND '$end_datetime')";
这是迄今为止我对 laravel eloquent 所做的尝试
$sch = DB::table('schedules')
->where(function ($query) {
$query->whereBetween('time_start', [$start_datetime, $end_datetime]);
})
->orWhere(function($query){
$query->whereBetween('time_end', [$start_datetime, $end_datetime]);
})->get();
有什么正确的想法吗?我的 laravel Eloquent 查询出现错误 undefined variable :start_datetime
谢谢
最佳答案
您需要使用use将变量调用到闭包范围
$sch = DB::table('schedules')
->where(function ($query) use ( $start_datetime,$end_datetime) {
$query->whereBetween('time_start', [$start_datetime, $end_datetime]);
})
->orWhere(function($query) use ( $start_datetime,$end_datetime){
$query->whereBetween('time_end', [$start_datetime, $end_datetime]);
})->get();
关于php - Laravel MySQL : translating SQL queries to Laravel Eloquent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46252470/