Laravel将变量视为查询构建器中的列名

问题描述 投票:0回答:2

我正在使用laravel 5.5并使用此查询检查事件检查是否可以使用2次插槽:

$schedules->where('id', $id)
                ->wherebetween($date, ['start','end'])
                ->orwherebetween($endTime, ['start','end'])
                ->orwherebetween('start', [$date,$endTime])
                ->orderBy('start')->get(); 

得到这个错误

“message”:“SQLSTATE [42S22]:未找到列:1054未知列'2019-03-06 13:00:00'in'where clause'

laravel-5
2个回答
0
投票

因为第一个参数应该是列的名称:

你应该将你的代码更改为:

->wherebetween('column name', ['1st date','2nd date'])
->orwherebetween('column name', ['1st date','2nd date'])

0
投票

我已经通过添加DB::raw() read more来解决这个问题

$schedules->where('id', $id)
                ->wherebetween(DB::raw($date), ['start','end'])
                ->orwherebetween(DB::raw($endTime), ['start','end'])
                ->orwherebetween('start', [$date,$endTime])
                ->orderBy('start')->get(); 
© www.soinside.com 2019 - 2024. All rights reserved.