【问题标题】:Phalcon: How to get resultset and total over limitPhalcon:如何获得结果集和总数超过限制
【发布时间】:2014-05-27 04:33:58
【问题描述】:

如何使用查询生成器在 phalcon 中实现此查询(最佳方法):

$results = "select * from table where name like 'A%' limit 10"; // <-- 10 records

$total = "select count(1) from table where name like 'A%'"; // <-- 100 records

return [
    'data' => $result,
    'total' => $total
];

我是 extjs 用户,我需要总超出限制才能显示分页信息(eq:显示 100 条记录中的 1 到 10)

谢谢。

【问题讨论】:

    标签: php phalcon


    【解决方案1】:

    您可以使用Pagination 实现此目的,请参见此处:Pagination Docs

    唯一的办法就是使用QueryBuilder 适配器。但这可以通过以下方式完成:

    $builder = $this->modelsManager->createBuilder()
        ->from('Table')
        ->andWhere('name like :name:', array('name' => 'A%' ) );
    
    $paginator = new Phalcon\Paginator\Adapter\QueryBuilder(array(
        "builder" => $builder,
        "limit"=> 10,
        "page" => 1
    ));
    
    return [ 
        'data' => $paginator->items,
        'total' => $paginator->total_items
    ];
    

    【讨论】:

    • omg,我认为分页倾向于显示 html。所以我没有注意。感谢您的知识
    • 抱歉再次询问您,我可以在分页器选项中使用offset 代替page 参数吗?
    • 嗨,据我所知,文档中只有 page 参数,因此您必须根据给定的 offsetlimit 计算 page(我假设 ExtJS 请求花药页面带有偏移量,它还应该为您提供“限制”值)。
    猜你喜欢
    • 1970-01-01
    • 2012-11-30
    • 2017-08-13
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多