splinker分页情况下还怎么通过linker的条件限制显示数据    
    
        发布于:2022-01-17 09:50:54
    
            
            #1 totalstotal            
             $result = $this->model->spPager($this->spArgs('page', 1), $this->spArgs('rows', 20))->findAll($conditions);
$rows = $this->model->spLinker()->run($result);
看论坛说分页时涉及的splinker要这么用,但是问题来了,我在model的$linker里设置了个条件,不满足则整条记录都不显示,而上面这种是先指针对单模型判断并分好页,然后再判断外联模型的条件的,这是如果$linker里的条件不满足,最多就是最终得出记录的外联字段为空而已。。求解决办法,谢谢!                
                        2014-08-26 09:52:40                    
         
                
            #2 jake            
             比较绕,或者直接写sql然后再分页吧。从逻辑上顺序就不太对                
                        2014-08-26 12:11:32                    
         
                
            #3 totalstotal            
            这个主要是做搜索功能是用到。譬如有 用户表A 和 用户日志B ,A表有用户id,用户姓名字段,B表有记录用户id,日志类型,日志内容字段。并在用户模型里建立了和日志模型的一对多关联。现在要根据用户名和日志类型这2个搜索条件搜索数据,而且还要考虑分页,所以出现了一开始我问的问题,这个逻辑挺正常的啊,这种情况,不写sql只靠linker怎么实现。                
                        2014-08-27 13:21:38                    
         
                
            #4 totalstotal            
             http://www.speedphp.com/thread-308-1-1.html根据这个说的,splinker涉及分页时,先要spPager查出内容再spLinker,像上面的多表搜索,日志类型是定义在spLinker里的,用户模型先spPager来find出数据了,那就不一定能满足是否为指定日志类型的了,最多就是日志表的关联信息为空而已(实际表现就是数据对应的map字段为空)。                
                        2014-08-27 13:30:04                    
         
                
            #5 totalstotal            
             而且因为涉及分页,就算得出记录后把数据外联字段为空的记录删除,但最后返回的记录总数也不符合每页的pageSize了。                
                        2014-08-27 13:32:24                    
         
                
            #6 jake            
             。。。一般建议太复杂的查询,关联还有分页什么的,还是直接构造SQL和分页 会好点。                
                        2014-08-27 14:08:18