Laravel 4.2 - 无法从数据库中获取随机行

GRo*_*ing 0 eloquent laravel-4

有人可以向我解释为什么这有效

$profile = Profile::all()->random(8);
Run Code Online (Sandbox Code Playgroud)

这不起作用

$profile = Profile::where('gender_id', '=', 1)->random(8);
Run Code Online (Sandbox Code Playgroud)

我收到错误说

调用未定义的方法 Illuminate\Database\Query\Builder::random()

Mar*_*łek 5

你应该使用:

$profile = Profile::where('gender_id', '=', 1)->get()->random(8);
Run Code Online (Sandbox Code Playgroud)

因为random()函数从集合中获取随机项目。参考