查询没有链接不工作 - Laravel

时间:2016-01-12 07:45:19

标签: laravel-5 chaining laravel-query-builder

当我试图在没有链接的情况下触发查询时,我的浏览器被挂起 - 没有响应/错误,但是使用链接查询工作正常。我已经在很多地方读过Laravel允许查询甚至不使用链接。但不知道为什么它不适合我。

顺便说一下,它只是一个演示项目,因此数据库中只有一个名为&#34的用户;用户"其中有50条记录,因此不会因浏览器因查询结果返回大量数据而被绞死。

无效:

$users = User::where('first_name', 'LIKE', '%Leonie%');

$users -> get();          

工作:

$users = User::where('first_name', 'LIKE', '%Leonie%') -> get();

我使用的是最新的Laravel版本5.2。所有内容都配置正确,如数据库,应用程序配置等。

任何帮助都将不胜感激。

感谢。

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();