2016-04-04 15 views
-1

kullanarak bir hesaplama alanı ekleme Eloquent kullanarak seçim sonuçımda hesaplanan bir alan eklemek istiyorum.Bir kullanicida Eloquent

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

ben beklenebilir:

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

Bağlam: my gerçek dünya şeyler, ne bilgisayar ediyorum (girişlerinin sınırlı sayıda üzerine) bir haversinüs formülüdür.

cevap

2

Bunun yerine bir ham sorgu kullanmanız gerekir, ör. Böyle:

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

siz de DB içe emin olun.

+0

Ham sorgulamanın gerekli olduğundan emin miyiz? – AsTeR

+0

Esasen bir işlem gerektiren bir işlemin bir ham sorgu kullanması gerekir. Bir tane (ek) olduğundan, bir ham sorguya gerek duyulmalıdır. Yaklaşık% 95 eminim. :) –

+0

@AsTeR Ham sorguyu yalnızca hesaplanan alana sınırlandırabilirsiniz: '-> select ('id', DB :: raw ('(s1 + s2) skoru') '), ama yine de ham maddeye ihtiyacınız var Ne yapmak istediğinizi sorgulayın. – patricus