Laravel:以随机顺序获得关系

时间:2016-12-28 10:31:59

标签: laravel eloquent

我有以下代码,我随机获得一个问题的答案:

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

我想以随机顺序返回answers

我的表结构是:

questions

answers

answer_questions - question_id,answer_id

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

这应该有效:

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

我在答案关系中调用了RandomOrder(以便答案将被随机排序)以及问题,因此这个查询将随机返回1个随机问题及其所有答案。

答案 1 :(得分:0)

试试这个:

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