2017-09-29 85 views
0

我有一個Eloquent查詢,我正在使用查詢範圍。我在我的表格中有一個km列,我將kmFrom和KmTo值作爲發佈數據傳遞。現在我正在做一個雄辯的地方,當我搜索km的時候,它會返回錯誤的結果。whereBetween()雄辯地返回錯誤結果

例如,如果我通過kmFrom = 1000kmTo = 2000。它給我的結果不在這兩個值之間。

雄辯:

Product::categoriesCategoryId($categoryId) 
      ->km($kmFrom, $kmTo)->get(); 

的公里查詢範圍:

public function scopeKm($query, $kmFrom, $kmTo) 
    { 
     if(($kmFrom) && ($kmTo)){ 
      return $query->whereBetween('km', ["$kmFrom", "$kmTo"]); 
     } 
     return $query; 
    } 

請幫助我在做什麼錯。

+0

嘗試單獨使用KM作用域來查看問題是否出現在'categoriesCategoryId'範圍內! – Maraboc

+0

嘗試從'「$ kmFrom」'和'「$ kmTo」'中刪除周圍的引號。 –

回答

0

這是不同的方法做同樣的事情

public function scopeKm($query, $kmFrom, $kmTo) 
    { 
     if(($kmFrom) && ($kmTo)){ 
      return $query->where('km','>' ,$kmFrom])->where('km','<',$kmTo); 
     } 
     return $query; 
    } 

這將工作同樣 希望這將幫助你!