php – 如何使用Laravel 4的Eloquent ORM从数据库中选择一个随机条目?

前端之家收集整理的这篇文章主要介绍了php – 如何使用Laravel 4的Eloquent ORM从数据库中选择一个随机条目?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个名为Question的Eloquent模型链接到名为questions的数据库表.

是否有一个Eloquent函数可以让我从数据库提取一个随机问题(或一组随机问题)?类似于以下内容

$random_question = Question::takeRandom(1)->get();

要么

$random_questions = Question::takeRandom(5)->get();

解决方法

你可以这样做:

$random_question = Question::orderBy(DB::raw('RAND()'))->take(1)->get();

$random_question = Question::orderBy(DB::raw('RAND()'))->take(5)->get();

如果要使用问题中指定的语法,可以使用范围.
在模型问题中,您可以添加以下方法

public function scopeTakeRandom($query,$size=1)
{
    return $query->orderBy(DB::raw('RAND()'))->take($size);
}

现在你可以做$random_question = Question :: takeRandom(1) – > get();得到1个随机问题.

您可以在http://laravel.com/docs/eloquent#query-scopes阅读有关Laravel 4查询范围的更多信息

猜你在找的Laravel相关文章