开发者社区> 问答> 正文

使用union查询结果,返回的ActiveDataProvider分页无效 - 服务报错

我有个相关的问题,这是我搜索到的一个帖子,我的查询方式和他类似

https://www.oschina.net/question/2353442_233382?sort=time#answers

这个帖子里说的只是union的order by  ,

需要使用union两个结果,Yii2中的api默认index 返回的new的ActiveDataProvider对象,使用union返回的结果new出来的ActiveDataProvider对象分页出现问题,每页都把数据全部显示,分页无效,不工作,去掉union单独查询一个结果返回分页是正常的,

展开
收起
montos 2020-06-02 20:42:48 955 0
1 条回答
写回答
取消 提交回答
  • @倚楼听风雨_ 你好,想跟你请教个问题:######

    引用来自“蓝胖三舅”的评论

    @倚楼听风雨_ 你好,想跟你请教个问题:

    第一个是用原生sql查询出结果集,然后在用框架去操作分页等,应该是可以的,主要还是看你的做法吧。

    第二个可以相对简单点,你直接创建一个 视图,然后视图的结果集就是你的那个查询语句,然后用你的框架针对这个结果集封装一个对象,然后就是正常的对象操作了。

    ######回复 @蓝胖三舅 : 哦,你的意思说,你是先把所有的结果集执行查询,然后再进行封装对象,这样肯定是不行的。 一般是两种做法: 1、通过框架,实现分页sql改写,就是自动分页语法 2、自己添加分页的sql语法,比如说mysql,在你的sql后面加上 limit 1,10 这样就是第1页,每页10条######想感谢您国庆假期还有空回复我的问题 针对您说的两点,第一个方法我已经试过了,用的model的findBySql查处的query,一样在new ADP的时候return query是全部,不是分页的结果,第二种没尝试过视图,也不太了解Yii应该如何搭配视图工作。我稍后查找下资料
    2020-06-02 20:42:58
    赞同 展开评论 打赏
问答分类:
API
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载