2016-04-04 11 views
-1

Ich möchte ein berechnetes Feld in meinem Auswahlergebnis mit Eloquent hinzufügen.Hinzufügen eines berechneten Felds in einer Auswahl mit Eloquent

$dbEntry->query->select('id', '(s1 + s2) as scoreSum')->toSql(); 
// "select `id`, `(s1` as `s2)` from `mytable`" 

Ich würde erwarten:

// "select `id`, `s1` + `s2` as scoreSum from `mytable`" 

Kontext: in meiner realen Welt stuff, ist das, was ich die Berechnung ein Haversine Formel (auf eine begrenzte Anzahl von Einträgen).

Antwort

2

Sie müssen stattdessen eine unformatierte Abfrage verwenden, z. wie folgt:

->select(DB::raw('id, (s1 + s2) as scoreSum')) 

Stellen Sie sicher, dass Sie auch die DB importieren.

+0

Sind wir sicher, dass die rohe Abfrage erforderlich ist? – AsTeR

+0

Im Grunde benötigt alles, was eine Operation erfordert, eine rohe Abfrage. Da Sie eine (die Ergänzung) haben, sollte eine rohe Abfrage benötigt werden. Ich bin zu 95% sicher. :) –

+0

@AsTeR Sie können die rohe Abfrage auf das berechnete Feld beschränken: '-> select ('id', DB :: raw ('(s1 + s2) als'ScoreSum'))', aber Sie brauchen immer noch das rohe Frage ab, was du machen willst. – patricus

Verwandte Themen