zoukankan      html  css  js  c++  java
  • 数据归档显示

    需求:显示一个级别,让下级在这个级别下面显示,也可以按时间归档处理,把某个时间段的放到一个时间里。大概格式如下:

    php
    laravel、thinkphp、file
    mysql
    select、insert、update
    linux

    方案:①首先需要把一级分类显示出来,然后在循环中根据id查询到它的子类再次循环输出;如下

    @foreach($allcate as $d)                                                             #先循环输出上级
      <a href="{{url('cate/'.$d->cate_id)}}" target="_blank" ><h3>{{$d->cate_name}}</h3></a>          
      <p class="dateview">&nbsp;
      <?php $childcate = DB::table('category')->where('cate_pid',$d->cate_id)->get(); ?>                   #输出上级后根据id,在模板中查询所有下级           
        {{var_dump(count($childcate))}}
      @if(count($childcate) != 0)
      @foreach($childcate as $cc)                                                                          #模板循环输出下级
        <span><a href="{{url('cate/'.$cc->cate_id)}}">{{$cc->cate_name}}</a></span>
      @endforeach
      @else
        <span>暂无下级</span>
      @endif
      </p>
    @endforeach

    ②在控制器对下级稍微处理一下,将所有下级作为一个数组存在查询到的上级数组中,也就是说先把所有的上级查询出来,遍历这个二维数组,即每一个数组都是一个上级的数组,在这个数组中添加一个字段用来存放它所有大下级,在模板中查询时将这个字段再次遍历,便得到了每一个下级。

      public function allcate(){
            $allcate = Category::where('cate_pid',0)->paginate(5);
            foreach ($allcate as $value) {                                           
                $child =  Category::where('cate_pid',$value->cate_id)->get();         #查询它所有的下级
                $value->childcate = $child;                          #将查到的所有下级(数组),作为新的字段存放到数组中
            }
            return view('home.allcate',compact('allcate'));                            #输出到模板中
        }

      然后,模板显示时不需要进行查询语句

        @foreach($allcate as $d)
        <a href="{{url('cate/'.$d->cate_id)}}" target="_blank" ><h3>{{$d->cate_name}}</h3></a>
        <p class="dateview">&nbsp;
          @if(count($d->childcate) != 0)
          @foreach($d->childcate as $cc)
          <span><a href="{{url('cate/'.$cc->cate_id)}}">{{$cc->cate_name}}</a></span>
          @endforeach
          @else
          <span>暂无下级</span>
          @endif
        </p>
        @endforeach

    总结:

    1、两种方法尽量使用第二种,在控制器中进行查询,模板直接循环输出,当然这里还需要优化将查询语句放到model中,这样比较符合规范。

    2、其他数据归档都可以使用这种方法,比如按时间归档,需要将归档的时间先查询出来作为新的字段放到要显示的时间里,然后输出即可

  • 相关阅读:
    python多进程(一)
    python操作memcached
    python操作redis
    SQLAlchemy总结
    SQLAlchemy-ORM
    python操作mysql二
    python操作mysql
    python正则二
    python正则
    python内置模块(三)
  • 原文地址:https://www.cnblogs.com/yaradish/p/9495193.html
Copyright © 2011-2022 走看看