如何拆分Eloquent模型查询

时间:2014-05-25 06:47:33

标签: php laravel eloquent

我试图像这样打破一个Eloquent查询

$query = new Product;

if (!empty($req->query['id'])) {
    $query->where('id', '=', '1');
}

$products = $query->get();

上面的结果为我提供了数据库中的所有产品。然而,这确实有效。

$products = Product::where('id', '=', '1')->get();

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:1)

在Laravel 4中,您需要将查询参数附加到查询变量中。在Laravel 3中,它会像你一样工作。

这是您需要做的(我不确定它是否适用于new Product):

$query = new Product;

if (!empty($req->query['id'])) {
    $query = $query->where('id', '=', '1');
}

$products = $query->get();

答案 1 :(得分:0)

您的代码没有意义。如果您制作new Product - 那么它永远不会有与之关联的ID - 因此您的if (!empty($req->query['id']))将始终为假。

您是否只是想获得具体的产品创意?

$products = Product::find(1);

相同
$products = Product::where('id', '=', '1')->get();