zoukankan      html  css  js  c++  java
  • tp5分页+循环子字段

    需求:显示用户订单,且每一条订单显示相应的商品,且分页

    环境:数据库目前订单表只有一个,订单的商品列表储存在这条订单中booklist字段中,以逗号隔开商品ID,字符串的形式保存

    后台代码

            $where = ['money_type'=>0];
                $list = Db::table('xxxdingdan')->where($where)->paginate(4);//订单表
                $page = $list->render();
                $list = $list->all();
                foreach($list as $k=>$v){
                    $arr = explode(",",$v['booklist']);
                    $wherebook['id'] = array('in', $arr);
                    $list[$k]["booklist"] = Db::table('xxxshangpin')->where($wherebook)->select();//商品表
                }
                $this->assign('list',$list);
                $this->assign('page',$page);

    解析一下:

    1. 为什么要用
    $list = $list->all();

    因为
    ->paginate(4);
    之后的数据是变成了对象型的数据,没办法foreach操作后续,所以用
    all()函数来变为数组,用toarray函数也可以,个人感觉all更方便一点,看具体的数据类型选择

    2、之前采用的办法是在前台端进行 {$list->render()} 操作,如果按照上述方法这样执行的话会出现一个问题,就是这个list数据已经由分页对象转化为数组了,前端再调用的时候就会报错。
    于是便$page = $list->render();在还未循环之前写上这段代码,提前赋值

    最后再看下前端代码
                  <ul>
                                {volist name="list" id="vo"}
                                <li class="of ">
                                    <p class="of">
                                        <span class="fl"><i>订单号:</i> {$vo.order_card}</span>
                                        <span class="fr">未付款</span>
                                    </p>
                                    <ul class="">
                                        {volist name="$vo['booklist']" id="v"}
                                        <li>
                                            <img src="...{$v.upload_img}" alt="">
                                            <p>{$v.book_name}</p>
                                        </li>
                                        {/volist}
                                    </ul>
                                    <p>总金额:{$vo.money}</p>
                                </li>
                                {/volist}
                            </ul>
                            <p>
                                {$page}
                            </p>






  • 相关阅读:
    C++ 11 Lambda表达式
    Hello word!
    nginx 官方文档翻译
    Http读书笔记1-5章
    ROM、RAM、DRAM、SRAM和FLASH的区别
    优化专题
    Typescript学习
    canvas实现的粒子效果
    【转载】js常用方法和片段
    【转载】图解正向代理、反向代理、透明代理
  • 原文地址:https://www.cnblogs.com/chenliuxiao/p/12517503.html
Copyright © 2011-2022 走看看