限制Doctrine FindAll方法的行

mTu*_*ran 13 doctrine zend-framework

我试图限制从doctrine的FindAll方法返回的行.

public function getActiveUsersByPoint($limit = 100){
    $users = $this->userRepository->findAll();

    return $users;
}
Run Code Online (Sandbox Code Playgroud)

此代码工作,但我不能使用$ limit变量限制结果.我怎么能这样做?

Sin*_*hti 56

EntityRepository#findBy()方法还接受排序,限制和偏移作为第二到第四个参数:

$tenUsers = $em->getRepository('MyProject\Domain\User')
               ->findBy(
                   array('age' => 20),        // $where 
                   array('name' => 'ASC'),    // $orderBy
                   10,                        // $limit
                   0                          // $offset
                 );
Run Code Online (Sandbox Code Playgroud)


Mar*_*bad 5

为了找到所有结果,你应该将一个空数组传递给findBy方法,我认为这是你假装的:

$users= $em->userRepository->findBy(
            array(),
            array('id' => 'DESC'),
            10,
            0
        );
Run Code Online (Sandbox Code Playgroud)

第一个参数是一个空数组,它相当于findAll(),然后是顺序(我把id作为样本),然后是限制,最后是偏移量.