繁体   English   中英

Laravel MySQL:将SQL查询转换为Laravel Eloquent

[英]Laravel MySQL: translating SQL queries to Laravel Eloquent

我正在尝试为我的调度系统获取时间可用性。 我知道如何使用普通的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雄辩尝试过的方法

$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雄辩查询出现错误, 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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM