当我试图在没有链接的情况下触发查询时,我的浏览器被挂起 - 没有响应/错误,但是使用链接查询工作正常。我已经在很多地方读过Laravel允许查询甚至不使用链接。但不知道为什么它不适合我。
顺便说一下,它只是一个演示项目,因此数据库中只有一个名为&#34的用户;用户"其中有50条记录,因此不会因浏览器因查询结果返回大量数据而被绞死。
无效:
$users = User::where('first_name', 'LIKE', '%Leonie%');
$users -> get();
工作:
$users = User::where('first_name', 'LIKE', '%Leonie%') -> get();
我使用的是最新的Laravel版本5.2。所有内容都配置正确,如数据库,应用程序配置等。
任何帮助都将不胜感激。
感谢。
答案 0 :(得分:3)
如果您没有调用get()
或first()
(在其他一些人中),例如获得结果集,则最终只会使用Builder
对象。这是用于构造查询的对象。在第一个示例中,您将Builder
对象分配给$users
,但在第二个示例中,您分配了一个Collection
对象。
// This assigns the result to $users
$users = User::where('first_name', 'LIKE', '%Leonie%') -> get();
// Doesn't assign the result to $users
$users = User::where('first_name', 'LIKE', '%Leonie%');
$users -> get();
你需要做
$users = User::where('first_name', 'LIKE', '%Leonie%');
$users = $users->get(); // Note the $users =
将用于存储查询构建器对象的变量命名为更明显的名称可能更好;比如$query
或许。
$query = Users::where();
$users = $query->get();
答案 1 :(得分:2)
我正在使用它,它工作正常。试试这样,看看它是否有帮助。
$query = DB::table('your_table_name');
$query->where('name', 'LIKE', 'something');
$some_variable = $query->where('published', 1)->get();