Lumen / Laravel查询构建器 - BETWEEN

时间:2016-01-03 16:44:21

标签: php mysql laravel laravel-5 lumen

我试图将此传统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语句将varDB

中的两列进行比较

不确定如何实施whereBetween

1 个答案:

答案 0 :(得分:0)

这是完全未经测试的,但我认为您最好的选择是使用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();