加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-14 19:36:09 所属栏目:大数据 来源:网络整理
导读:我有一个名为Question的Eloquent模型链接到名为questions的数据库表. 是否有一个Eloquent函数可以让我从数据库中提取一个随机问题(或一组随机问题)?类似于以下内容: $random_question = Question::takeRandom(1)-get(); 要么 $random_questions = Question
我有一个名为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查询范围的更多信息

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读