2017-06-30 2 views
0

Ich bin mir nicht sicher, ob dies möglich ist, ohne zuerst eine Abfrage durchzuführen.Hinzufügen einer Nummer aus einer Datenbank zu einer vorhandenen Variablen zum Ausführen einer Abfrage

Ich habe so etwas wie dies:

$item_weight 

Dieser Artikel geht in eine Box, die $box->weight eine eigene Zeile hat und hat eine maximale Gewicht $box->max_weight.

Ich möchte eine Liste von Kisten, in die ich meinen Artikel legen könnte.

Ich weiß, ich kann dies tun, indem Sie zuerst eine Abfrage und dann mit einer foreach Berechnung, aber ich frage mich, ob es eine sauberere Möglichkeit ist, dies zu tun.

Etwas wie folgt aus:

$boxes= Boxes::where('max_weight','>',$item_weight + $box->weight) 
       ->orderBy('max_weight','asc') 
       ->get(); 

Antwort

2

Sie können whereRaw verwenden und verschieben Berechnung zu db Seite:

$boxes= Boxes::whereRaw('boxes.max_weight - boxes.weight > ?', [$item_weight]) 
    ->orderBy('max_weight','asc') 
    ->get(); 
Verwandte Themen