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

时间:2015-02-05 15:52:02

标签: php cakephp 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)就像它应该的那样工作)。

1 个答案:

答案 0 :(得分:9)

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

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

或者,您可以使其像get()一样工作,因为如果没有找到结果,它将返回异常:

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