Laravel 如何像 appends 那样保留 url 的请求参数

用laravel做分页的时候,发现appends可以保证page参数不丢失
像这样就能在点击分类链接后,再点下一页的时候page参数不丢失.
然后我就遇到了以下的问题:
譬如我有3个以上的层级筛选链接,我通过点击连接后传递参数到后端,然后后端返回数据,我要如何保留他们的各个层级的参数,我想用appends方法的,但是a链接的href好像用不了,只能用在分页上,然后我就用js拼接参数实现了保留请求参数。

 //获取url问号后面的参数
 function getQueryVariable(variable){

       var query = window.location.search.substring(1);

       var vars = query.split("&");

       for (var i=0;i<vars.length;i++) {

               var pair = vars[i].split("=");

               if(pair[0] == variable){

                   return pair[1];

                   }

       }

}
 var a=document.getElementsByClassName("type")[0].getElementsByTagName("a");
 //第一层级
   var type=getQueryVariable("type");
   var state=getQueryVariable("state");
   var sort=getQueryVariable("sort");
   for(var i=0;i<a.length;i++){
        var b=a[i].innerHTML;
        //判断参数是否存在
        if(sort && state){
            a[i].href="/Comic?type="+b+"&sort="+sort+"&state="+state;
        }else if(state){
            a[i].href="/Comic?type="+b+"&state="+state;
        }else if(sort){
            a[i].href="/Comic?type="+b+"&sort="+sort;
        }
        else{
            a[i].href="/Comic?type="+b;
        }
   }

   var a1=document.getElementsByClassName("state")[0].getElementsByTagName("a");
   //第二层级
   for(var i=0;i<a1.length;i++){
        var b=a1[i].innerHTML;
        if(sort && type){
            a1[i].href="/Comic?type="+type+"&state="+b+"&sort="+sort;
        }else if(type){
            a1[i].href="/Comic?type="+type+"&state="+b;
        }else if(sort){
            a1[i].href="/Comic?state="+b+"&sort="+sort;
        }
        else{
            a1[i].href="/Comic?state="+b;
        }
   }

   var a2=document.getElementsByClassName("sort")[0].getElementsByTagName("a");
   //第三层级
   for(var i=0;i<a2.length;i++){
         b=a2[i].getAttribute("value");
         if(type && state){
            a2[i].href="/Comic?type="+type+"&state="+state+"&sort="+b;
        }else if(type){
            a2[i].href="/Comic?type="+type+"&sort="+b;
        }else if(state){
            a2[i].href="/Comic?state="+state+"&sort="+b;
        }
        else{
            a2[i].href="/Comic?sort="+b;
        }
   }

但是我发现如果筛选的层级链接有3个以上时,代码会变得很繁重复杂,所以想问下有没有简便一点的,像appends那样的方法解决这个问题

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2

我后台写好了查询了,差的是前端的分类筛选链接点击传参过去,我用的是?后面加参数的形式,但是第一层级的参数和第二层级的参数不能并存啊

4年前 评论

就好像你分页链接没有设置appends时,点击下一页page参数不能和其他参数并存一样

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!