我试图像这样打破一个Eloquent查询
$query = new Product;
if (!empty($req->query['id'])) {
$query->where('id', '=', '1');
}
$products = $query->get();
上面的结果为我提供了数据库中的所有产品。然而,这确实有效。
$products = Product::where('id', '=', '1')->get();
有办法做到这一点吗?
答案 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();