2016-03-28 16 views
-1

Ben kullanıcı değerlerini gönderdiğinde, ben eşleşen sonuçları laravel MySQL

herhangi sonuçları içeriyorsa

almak istediğiniz arama sorgusunu aşağıdaki gerçekleştirmek istiyorum "hiçbiri" i çıkarmak nerede koşul ve sadece kontrol etmek istiyorum başkaları

Örnek için uygun değerler 1

$fructose = high 
$lactose = mid 
$polyols = none 
$fructan = none 

i laktoz yüksek $ fruktoz = $ ve için = orta

yalnızca eşleşen sonuçları kontrol etmek istiyorum eğer öyleyse

Örnek 2

$fructose = high 
$lactose = mid 
$polyols = mid 
$fructan = mid 

yüzden tüm eşleştirme

bildiriniz sonuçları kontrol etmek isterseniz, aşağıda benim şimdiki sorgu ben aracılığıyla sorunu çözmeye çalıştı İşte

$fod = FodMap::select('*') 
     ->where('fructose_level', '>=', $fructose) 
     ->where('lactose_level','>=', $lactose) 
     ->where('polyols_level', '>=', $polyols) 
     ->where('fructan_level', '>=', $fructan) 
     ->get(); 
+1

Basitçe bir çek ekleyin:

Böyle durum ise sorgunuzun yazabilirsiniz. BTW neden değerler> dize olduğunda? Sadece '' 'çalışırdı. –

+0

@rr rr, hala burada en iyi cevabı kontrol etmediniz: http://stackoverflow.com/questions/36054760/how-to-get-opposite-results-from-a-query-laravel - ama siz cevabımdan kod kullanarak ... –

cevap

1

olduğunu eloquent yapısı kullanarak sorgu yazma. İhtiyacınıza göre koşulu nerede ve değerde yönetmelisiniz.

$query = FodMap::select('*'); 
    if($fructose != none){ 
     $query = $query->where('fructose_level',$fructose); 
    } 
    if($lactose != none){ 
     $query = $query->where('lactose_level',$fructose); 
    } 
    if($polyols != none){ 
     $query = $query->where('polyols_level',$fructose); 
    } 
    if($fructan != none){ 
     $query = $query->where('fructan_level',$fructose); 
    } 

    $fod = $query->get();