在Laravel中重新查询查询

时间:2016-02-04 01:59:11

标签: laravel laravel-4

例如,如果我有这个:

$user = User::where('color', 'red')
    ->get();

如何查询此变量,例如:

$requery = $user->where('age', '25')
    ->get();

感谢。

1 个答案:

答案 0 :(得分:0)

首先不要调用get()

$user_query = User::where('color', 'red');

现在:

$users = $user_query->get(); // to get all color red
$users = $user_query->where('age', '25'); // to get all color red of age 25

get()执行实际查询。在调用该方法之前,您可以继续修改查询,添加查询等等。

如果您已经执行了查询,则调用get(),并且您不再拥有Laravel集合,而是普通数组。您可以创建一个这样的新集合:

$users = collection($users);

用这个"过滤"使用wheredocs方法:

$users_of_age = collection($users)->where("age", 25);

我更喜欢我的模型返回查询而不是实际项目。这样你就可以修改你的控制器中的查询,比如分页,或者其他什么。