在Eloquent query / Laravel 5.2中使用变量

时间:2016-08-11 15:32:28

标签: php laravel laravel-5 eloquent laravel-5.2

在我的Laravel 5.2控制器中,我正在使用Eloquent ORM执行请求:

$products = Product::where('first_condition', 'first_condition_value')
                            ->where('second_condition', 'second_condition_value')
                            ->get();

此请求正常,并为我提供了符合这两个条件的产品列表。

理想情况下,我想生成一个$request变量并在我的请求中使用它:

$request = "where('first_condition', 'first_condition_value')->where('second_condition', 'second_condition_value')"

我没有设法让这段代码运行。

为了给你更多的视角,请求可以有从2到n的多个条件,所以我想用for循环生成它。

1 个答案:

答案 0 :(得分:1)

将您的额外条件包装在一个数组中并将它们循环为以下代码段:

<?php
$query = Product::where('first_condition', 'first_condition_value');

$conditions = array(
    'second_condition' => 'second_condition_value',
    'third_condition' => 'third_condition_value',
);

foreach ($conditions as $key => $value) {
    $query->where($key, $value);
}

$products = $query->get();