动态添加到where条件- Laravel


Adding to where condition dynamically - 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;

您的查询看起来不错,但是您用来构建它的数据可能会给您无效的结果。在查询前添加此命令:

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中执行它,或者在任何程序中直接连接到数据库服务器。