描述

TP3.1使用独立分组,分组默认路径为/Modules/,在Modules下有Index和Admin两个文件夹,分别是两个模块,路径格式如下所示。

11

遇到的问题:

在/Index操作模块下, __ACTION__和U("")方法(请注意使用默认的U(""),而分页类Page()中如果没有传递第四个参数,那么就会使用U("")产生当前的路径,从而生成分页的url)。

但是现在发现在Index模块下的__ACTION__方法和U("")方法生成的url均不对,少了一个./Index/(分组名),所以分页也出现了问题。

这个问题在Index/的操作下才会出现,但是Admin/下的操作则不会出现(目前我也不知道为什么,这个问题蛋疼了好久)。

在两个操作中使用的代码相同,生成的路径url对比如图:

【可以明显的看出,代码一样,但是Index下的路径少了一个Index分组,/Index/Index/pointlist/变成了/Index/pointlist/】

1

2

因为上述问题的存在,导致分页的时候,分页显示不正确

解决问题:

Page类在引用的时候有四个参数分别如下,


 /**
     * 架构函数
     * @access public
     * @param array $totalRows  总的记录数
     * @param array $listRows  每页显示记录数
     * @param array $parameter  分页跳转的参数
     */
    public function __construct($totalRows,$listRows='',$parameter='',$url='')

如果我们不传递第四个URL参数,那么他会使用U("")方法生成一个路径,当然可以修改源代码,但是修改源代码以方便无法做到响应式的创造url,另外由于只有Index分组存在这个问题(我一直在想是不是因为两个Index重复所以导致了一个),所以使用另外一种解决方案。

创造一个全局函数,不能使用__ACTION__,也不能用__SELF__,都不起作用(我试过了),因此创建一个函数,全局性质的函数,模拟U("")生成路径。

函数的名字命名为 function UU(),函数只是返回一个正常的 __ACTION__应该有的(也就是 /Index/Index/pointlist),加上了分组名称。

在声明Page类的对象的时候,将第四个参数传递进去 即 $Page=new Page($count,20,'',UU());  第三个参数不需要给的。

代码:

函数很简单,只有几行,但是这个发现问题和研究源代码的过程是很有意义的。

最近我写代码的注释真的是越来越多。

下面就是代码和注释,如果站点代码显示有问题,代码可以去gitosc查看

链接地址为:http://git.oschina.net/postbird/0yj641p7dnhc3woxk5em841.code.git

本站文章代码请至git@osc查看代码片段!链接如上!