0

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

顺便说一句,它只是一个演示项目,所以数据库中只有一个名为“users”的表,其中有 50 条记录,所以浏览器不会因为查询结果返回的大量数据而挂起。

不工作:

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

$users -> get();          

在职的:

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

我正在使用最新的 Laravel 5.2 版。所有东西都配置正确,如数据库、应用程序配置等。

任何帮助,将不胜感激。

谢谢。

4

2 回答 2

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();
于 2016-01-12T09:27:42.877 回答
2

我像这样使用它,它工作正常。像这样试试看是否有帮助。

$query = DB::table('your_table_name');
$query->where('name', 'LIKE', 'something');
$some_variable = $query->where('published', 1)->get();
于 2016-01-12T09:15:48.783 回答