Md.*_*ain 10 php laravel eloquent laravel-4
我有这样的查询
SELECT * FROM `sp_price` WHERE (`from_date` between '2014-08-15' and '2014-09-18') || (`to_date` between '2014-08-15' and '2014-09-18')
Run Code Online (Sandbox Code Playgroud)
现在我如何转换此查询laravel 4.我用Eloquent
小智 14
DB::table(sp_price)
->whereBetween('from_date',array('2014-08-15','2014-08-18'))
->orWhereBetween('to_date',array('2014-08-15','2014-08-15'))
->get();
Run Code Online (Sandbox Code Playgroud)
也许你可以试试这个
小智 0
您可以使用whereRaw()向查询添加原始 where 子句,例如:
$results = SpPrice::whereRaw("('2014-08-15' between `from_date` and `to_date`) || ('2014-09-18' between `from_date` and `to_date`)")->get();
Run Code Online (Sandbox Code Playgroud)
或者也许您可以用作 的DB::raw()第一个参数whereBetween(),但我不确定是否可能,在这种情况下您可以使用orWhere()闭包来编写更具可读性的代码,例如:
SpPrice::whereBetween(DB::raw('"2014-08-15"'), ['from-date', 'to_date'])->orWhere(function($q)
{
$q->whereBetween(DB::raw('"2014-09-18"'), ['from-date', 'to_date']);
});
Run Code Online (Sandbox Code Playgroud)
但我不太确定这是否有效,请尝试一下。