我试图将这个传统的 sql
查询转换为 larvael/lumen
查询生成器,但遇到了麻烦。
$query = "SELECT a.id, a.name, a.cuisine, a.status, a.new, a.addressLine1, a.addressLine2, a.addressLine3, a.city, a.weekendot, a.weekendct, b.class
FROM restaurants a, restaurants_class b
WHERE a.class = b.id
AND '$date' = CURRENT_DATE
AND '$ntime' BETWEEN a.weekendot AND a.weekendct
ORDER BY id DESC";
$date
和 $ntime
是变量。
这就是我到目前为止所拥有的;
$posts = DB::connection('web')
->table('restaurants')
->join('restaurants_class', 'restaurants.class', '=', 'restaurants_class.id')
->select('restaurants.*', 'restaurants_class.*')
->get();
第一个 AND
语句没有从 DB
获取任何内容
第二个 AND
语句将 var
与 DB
中的两列进行比较
不确定如何实现 whereBetween
最佳答案
这完全未经测试,但我认为您最好的选择是使用 whereRaw
方法,因为您的变量不允许您使用 whereBetween
方法。
我还假设 $date
和 $ntime
变量是 PHP 变量而不是 MySQL 变量。
$posts = DB::connection('web')
->table('restaurants')
->join('restaurants_class', 'restaurants.class', '=', 'restaurants_class.id')
->whereRaw('? = CURRENT_DATE', $date)
->whereRaw('? BETWEEN a.weekendot AND a.weekendct', $ntime)
->select('restaurants.*', 'restaurants_class.*')
->get();
关于php - Lumen/Laravel 查询生成器 - BETWEEN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34578973/