【发布时间】:2020-04-07 07:35:37
【问题描述】:
我想问一下 Laravel 中的一些功能,我正在使用其他人编写的一些旧代码,我想了解它为什么会这样写:
$users = Users::all();
$results = $users->where('age', '>','30')->get();
我的问题是如何将 'where' 子句与 '$users' 变量一起使用?这工作正常,没有给出错误,它返回所需的结果。但据我所知,'where' 子句可以像这样使用:
Classname::where()->get()
User 模型是否实现了某些功能或使用某些东西能够以这种方式调用“where”子句?当我尝试做同样的事情但使用我正在创建的新模型时,我得到了
"Type error: Too few arguments to function Illuminate\\Support\\Collection::get()
【问题讨论】:
-
$users = User::all(); $results = $users->where('age', '>', 30)->get();从数据库的角度来看是昂贵的。使用$results = User::where('age', '>', 30)->get();考虑当您在表中有 500.000 个用户并且其中只有少数超过 30 岁的情况。首先调用所有结果不是数据库引擎应该如何工作的方式。 -
在不工作之前,您可以随心所欲地使用它。但是,从数据库中获取您需要的内容,而不是所有内容。我告诉你你应该如何使用。
标签: laravel model where-clause