【问题标题】:Symfony Doctrine sfDoctrinePager and LIMITSymfony Doctrine sfDoctrinePager 和 LIMIT
【发布时间】:2012-03-11 17:50:12
【问题描述】:

我有一个有 500 个用户的表。我需要在我的主页上显示最后 100 个注册用户,分页。所以我使用 symfony 和 sfDoctrinePager 的分页。

行动:

    $query = UserTable::getLast100UsersQuery();
    $pager = new sfDoctrinePager('User', 10);
    $pager->setQuery($query);
    $pager->setPage($request->getParameter('page', 1));
    $pager->init();

型号:

    static public function getLast100UsersQuery() {
    return Doctrine_Core::getTable('User')->limit(100);
    }

我的问题是模型中的 LIMIT(100) 被忽略了,并且分页适用于所有 500 个用户。我只想要最后 100 个用户,而不是所有用户。

提前感谢大家的帮助

【问题讨论】:

    标签: php symfony1 doctrine pager paginator


    【解决方案1】:

    我以不同的方式进行分页。 在我的模型中,查询是这样的:

    public function getLast100UsersQuery($page = null)
         {
            $q = Doctrine_Query::create()
            ->from("User")
            ->limit(100);
    
           $pager = new sfDoctrinePager('User', 10);
           $pager->setQuery($q);
           $pager->setPage($page, 1);
           $pager->init();
    
           return $pager;
          }
    

    在行动中我得到了查询:

    $pager = $this->pager = Doctrine_Core::getTable('user')->getLast100UsersQuery( $request->getParameter('page'));
    

    我用这种方式进行分页的所有时间都没有问题:)

    【讨论】:

    • 对于这种情况,他需要重放他的参数,如表名等。但在我的项目中,我以这种方式进行分页并 100% 工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多