2016-12-28 105 views
3

关系,我有以下的代码,我得到一个随机问题,它的答案:Laravel:获取随机顺序

$q = Question::with('answers') 
     ->inRandomOrder() 
     ->first(); 

我想以随机顺序返回answers

我的表结构是:

questions

answers

answer_questions - question_id,answer_id

任何想法?

回答

3

这应该工作:

$q = Question:with(['answers' => function ($q) { 
    $q->inRandomOrder(); 
}])->inRandomOrder()->first(); 

我叫inRandomOrder的答案关系(这样的回答会被随机排序),以及问题,所以该查询随机返回1个随机问题,随机答案全部为答案。

+0

这是100%,正好,我的用例大声笑。谢谢 :) – JoshP

0

试试这个:

$question= Question::inRandomOrder()->first(); 
$randomAnswer= $question->answers()->random();