简单地说,如果我有一个实体有很多相关的项目(hasMany),我该如何取出那个实体,它的相关项目是随机排列的那些相关行随机抽取相关物品,以eloquent/Larvael 5.x
我取像这样:
$question = Question::with('categories', 'answers')->where(_some_parameters_) ... ->get();
我将如何洗牌的结果对象的“答案”?
简单地说,如果我有一个实体有很多相关的项目(hasMany),我该如何取出那个实体,它的相关项目是随机排列的那些相关行随机抽取相关物品,以eloquent/Larvael 5.x
我取像这样:
$question = Question::with('categories', 'answers')->where(_some_parameters_) ... ->get();
我将如何洗牌的结果对象的“答案”?
你可以尝试这样的事:
$question = Question::with(['categories', 'answers' => function($q) {
$q->orderByRaw('RAND()');
}])->where(_some_parameters_)
->get();
这仅是MySQL虽然。
要做到在Laravel的 “洗牌”,而不是的MySQL:
$question = Question::with('categories', 'answers')->
where(_some_parameters_) ... ->get()->shuffle();
在Laravel 5.2你可以试试这个代码:
User::inRandomOrder()->get();
这工作就像一个魅力,谢谢。 – evanr