限制 Dotrine FindAll 方法的行数

发布于 2024-11-26 22:32:33 字数 237 浏览 1 评论 0原文

我试图限制从原则的 FindAll 方法返回的行。

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

    return $users;
}

这段代码可以工作,但我不能使用 $limit 变量来限制结果。我怎样才能做到这一点?

i am trying to limit rows which return from doctrine's FindAll method.

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

    return $users;
}

This code work but i can't use $limit variable for limitting results. How can i done this ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我的痛♀有谁懂 2024-12-03 22:32:33

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

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

The EntityRepository#findBy() method additionally accepts orderings, limit and offset as second to fourth parameters:

$tenUsers = $em->getRepository('MyProject\Domain\User')
               ->findBy(
                   array('age' => 20),        // $where 
                   array('name' => 'ASC'),    // $orderBy
                   10,                        // $limit
                   0                          // $offset
                 );
吃兔兔 2024-12-03 22:32:33

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

$users= $em->userRepository->findBy(
            array(),
            array('id' => 'DESC'),
            10,
            0
        );

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

In order to find all results, you should pass an empty array to the findBy method, I think it is what you pretend:

$users= $em->userRepository->findBy(
            array(),
            array('id' => 'DESC'),
            10,
            0
        );

First param is an empty array, which it is equivalent to findAll(), then the order (I put id as sample), then the limit and finally the offset.

清欢 2024-12-03 22:32:33

如果您的问题是针对 Doctrine 1.x,FindAll 的意思是“查找全部”。要限制结果,请使用 DQL:

$q = Doctrine_Query::create()
  ->from('UserRepository')
  ->limit($limit);
$users = $q->execute();

If your question is for Doctrine 1.x, FindAll means "find all". To limit the results, use DQL:

$q = Doctrine_Query::create()
  ->from('UserRepository')
  ->limit($limit);
$users = $q->execute();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文