Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用Laravel4雄辩的ORM从数据库中选择随机条目?_Php_Mysql_Laravel_Laravel 4_Eloquent - Fatal编程技术网

Php 如何使用Laravel4雄辩的ORM从数据库中选择随机条目?

Php 如何使用Laravel4雄辩的ORM从数据库中选择随机条目?,php,mysql,laravel,laravel-4,eloquent,Php,Mysql,Laravel,Laravel 4,Eloquent,我有一个名为Question的雄辩模型,它链接到一个名为questions的数据库表 是否有一个雄辩的功能,可以让我从数据库中获取单个随机问题或一组随机问题?如下所示: $random_question = Question::takeRandom(1)->get(); 或 您只需执行以下操作: $random_question = Question::orderBy(DB::raw('RAND()'))->take(1)->get(); 及 如果要使用问题中指定的语法,可

我有一个名为Question的雄辩模型,它链接到一个名为questions的数据库表

是否有一个雄辩的功能,可以让我从数据库中获取单个随机问题或一组随机问题?如下所示:

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

您只需执行以下操作:

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

如果要使用问题中指定的语法,可以使用作用域。 在模型问题中,可以添加以下方法:

public function scopeTakeRandom($query, $size=1)
{
    return $query->orderBy(DB::raw('RAND()'))->take($size);
}
现在您可以执行$random\u question=question::takeRandom1->get;得到1个随机问题

有关Laravel 4查询范围的更多信息,请访问


你可以使用随机的。它简单有效。

只需在查询中使用->orderByDB::raw'RAND即可

$featurep=DB::表'tbl_产品' ->加入'tbl_产品图片','tbl_产品.ID','=','tbl_产品图片.product_ID' ->whererray'tbl_products.is_Active'=>0,'CategoryID'=>$result->CategoryID ->groupBy'ID' ->orderByDB::原始“兰德” ->take4
->得到

两条战线上都可能出现完美的复制品。谢谢。@SUB0DH可以处理数千条记录吗?它不会减慢应用程序的速度?这种方法对于一些结果是好的,但如果你有数千个结果,这种方法会很慢,因为它首先获得所有结果,然后随机选择一个。
$random_question = Question::orderBy(DB::raw('RAND()'))->take(5)->get();
public function scopeTakeRandom($query, $size=1)
{
    return $query->orderBy(DB::raw('RAND()'))->take($size);
}
$data = Model::where('id',$id)->get()->random($count);