Yii2 api index 使用union查询结果,返回的ActiveDataProvider分页无效的问题

蓝胖三舅 发布于 2016/09/30 18:01
阅读 879
收藏 0
我有个相关的问题,这是我搜索到的一个帖子,我的查询方式和他类似

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

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

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

加载中
0
蓝胖三舅
蓝胖三舅
@倚楼听风雨_ 你好,想跟你请教个问题:
0
yzChen233
yzChen233

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

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

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

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

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