2014-03-26 51 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