我不知道是否可以这样做,但我希望能够动态地添加到where条件。我认为有一种方法。我希望能够向数据库发送一个查询而不是多个查询。
这是我到目前为止的代码
$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)
您的查询看起来不错,但您用来构建它的数据可能会给您带来无效结果。在查询之前添加此命令:
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中执行它,或者您必须直接连接到数据库服务器的任何程序。