2017-09-29 5 views
0

Ich habe eine Eloquent-Abfrage und verwende den Abfragebereich. Ich habe eine km-Spalte in meiner Tabelle und ich übergebe kmFrom und KmTo Werte als Post-Daten. Jetzt mache ich einen eloquenten WhereBetween und es gibt falsche Ergebnisse zurück, wenn ich nach km suche.whereBetween() Eloquent gibt falsche Ergebnisse zurück

Zum Beispiel, wenn ich kmFrom = 1000 und kmTo = 2000 passiere. Es gibt mir Ergebnisse, die nicht zwischen diesen beiden Werten liegen.

Eloquent:

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

Abfragebereich für die km:

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

Bitte helfen, was ich falsch mache.

+0

Versuchen Sie, den KM-Bereich allein zu verwenden, um festzustellen, ob das Problem im Bereich 'categoriesCategoryId' liegt. – Maraboc

+0

Versuchen Sie, die umgebenden Zitate aus '" $ kmFrom "' und '" $ kmTo "' zu entfernen. –

Antwort

0

Es ist anders Ansatz elbe

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

dies funktionieren wird gleiche Hoffnung tun das wird Ihnen helfen!

Verwandte Themen