我如何在 CakePHP 3.0 中获得随机行?

How do I get a random row in CakePHP 3.0?

我正在尝试使用 CakePHP 3.0 RC-1 检索随机行,我调查了 the docs

使用我从 CakePHP 2.X 获得的内容,并将其作为在 CakePHP 3.0 RC-1 中获取随机行的起点。然而,这显然不是为了蛋糕小姐:

$result = $this->Game->find('all')
            ->order('rand()')
            ->limit(1);

结果一无所获。数据库中有数据,我可以检索单个记录。 (即 $this->Game->get(20) 正常工作)。

只需使用 "first" 获得第一个结果:

$result = $this->Game->find('all')
        ->order('rand()')
        ->first();

或者,您可以使它像 get() 那样工作,因为如果找不到结果,它会 return 异常:

$result = $this->Game->find('all')
        ->order('rand()')
        ->firstOrFail();