tp6使用自定义分页传参问题

Author Avatar
yyq 2020-09-01 15:50:17
  • 二维码

tp6使用自定义分页传参问题

        先简单记录下tp6自定义分页操作,以获取文章数据为例:

        NO1:处理后端php部分如下

            <?php

                public function getArticleInfo(){

                    $articleInfo = Db::name('article')->paginate(10)->order("id desc")->select();

                    //处理分页

                    $page = $articleInfo->render();


                    //将参数整合传入页面

                    $dat["page"] = $page;

                    $dat["articles"] = $articleInfo;

                    View::assign($dat);

                    return View::fetch('article');

                }


        NO2:前端页面接受数据分页并展示

            <html>

                   <body>

                        {foreach $articles as $vo}

                            <!--此处展示文章内容部分 -->

                        {/foreach}

                        <!-- 分页处理如下 -->

                        {$page|raw}

                    </body>

            </html>


         NO3:此时当文章超过限制10条时将会正常展示分页下标,但是我们会经常查询文章分类,标签分类啥的,并且会将参数以get方式传递,此时分页中并不会自动加上这些参数,导致数据展示不准确,操作如下:

        

        <?php

                public function getArticleInfo($tagname){

                    $articleInfo = Db::name('article')->where('tagname', 'like', '%'.$tagname.'%')->paginate(['list_rows'=>10,'query' => request()->param()] )->order("id desc")->select();

                    //处理分页

                    $page = $articleInfo->render();

                    //将参数整合传入页面

                    $dat["page"] = $page;

                    $dat["articles"] = $articleInfo;

                    View::assign($dat);

                    return View::fetch('article');

                }

        

        还有种原始处理方式:

            <?php

                public function getArticleInfo($tagname){

                    $articleInfo = Db::name('article')->where('tagname', 'like', '%'.$tagname.'%')->paginate(10)->order("id desc")->select();

                    //处理分页

                    $page = $articleInfo->render();

                    //此处$page分页中并未带入'tagname'参数,所以我自行追加了下再传入页面

                    $page = str_replace('tag.html?page=', 'tag.html?tagname='.$tagname.'&page=', $page);

                    //将参数整合传入页面

                    $dat["page"] = $page;

                    $dat["articles"] = $articleInfo;

                    View::assign($dat);

                    return View::fetch('article');

                }


        NO4:前端无需修改,OVER;

上一篇 返回列表 下一篇

发表评论

Tips:评论内容请文明用语