2014-03-26 68 views
0

我不知道是否可以做,但我希望能夠動態添加到where條件。我認爲有一種方法。我希望能夠發送一個查詢而不是多個查詢到數據庫。動態添加到哪裏條件 - Laravel

這裏是我的代碼至今

$elements = NutritionValues::where(function($query) use ($client_id, $products) { 
     foreach($products as $product) { 
      $query->where('client_id', '=', $client_id) 
      ->where('product_id', '=', $product['product_id']) 
      ->where('ingredient_name', '=', $product['element_name']); 
     } 

    })->get(); 
    return $elements; 
+0

這不適合你嗎?任何錯誤? –

+0

沒有錯誤,但問題是沒有結果只給出一個空陣列 – user2708296

+0

Illuminate \ Database \ Eloquent \ Collection對象([items:protected] => Array()) – user2708296

回答

0

您的查詢看起來不錯,但數據使用的是建立它可能會給你一個無效的結果。您的查詢之前添加此命令:

DB::listen(function($sql, $bindings, $time) { 
    var_dump($sql); 
    var_dump($bindings); 
}); 

在你的頁面顯示或

DB::listen(function($sql, $bindings, $time) { 
    Log::info($sql); 
    Log::info($bindings); 
}); 

發送記錄。

它將顯示生成的查詢和用於執行它的值(綁定)。分析它並在你的cli中執行它,或者你必須直接連接到數據庫服務器的任何程序。

+0

正是我在找的東西。查看顯示生成的查詢的方法。謝謝 :)。 – user2708296