动态添加到where条件 - Laravel

时间:2014-03-26 19:37:40

标签: php laravel laravel-4

我不知道是否可以这样做,但我希望能够动态地添加到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;

1 个答案:

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