ThinkPHP分页链接支持数组参数的办法

这几天在用ThinkPHP做系统,搜索页有个数组参数提交

<input class="params_t" name="t[]" type="checkbox" value="email">
<input class="params_t" name="t[]" type="checkbox" value="name">

提交后的URL是

t是个多选项 checkbox

/search.html?q=30&t%5B%5D=a&t%5B%5D=b&pagesize=20

有多页数据的时候

用ThinkPHP自带的分页生成器 ORG.Util.Page

生成的第2页后的链接是

/search/q/30/t//pagesize/20/p/2.html

t 参数的值丢失了,找了下解决办法:

修改 ThinkPHP/Common/functions.php 的 U 函数:

第 258行

        if(!empty($vars)) { // 添加参数
            foreach ($vars as $var => $val){
                if('' !== trim($val))   $url .= $depr . $var . $depr . urlencode(is_array($val) ? join(',',$val):$val);
            }                
        }

在 Action 获取 t 参数的地方再修改下代码:

$t = I('get.t');if(!is_array($t) && strpos($t,',') !== false) $t = explode(',',$t);

OK, 搞定

第2页后的链接变成

/search/q/30/t/a,b/pagesize/20/p/2.html

原文地址:https://www.cnblogs.com/imbin/p/3369918.html