数据归档显示

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

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

原文地址:https://www.cnblogs.com/yaradish/p/9495193.html

时间: 2024-10-11 08:12:30

数据归档显示的相关文章

闪回数据归档(Flashback Data Archive)

转自:http://book.2cto.com/201209/4154.html 闪回查询对撤销数据及参数undo_retention的依赖注定了它们在大事务量的情况下闪回时间窗口将会很小,想要查询数月之前的"旧"数据绝对不可能,但在闪回数据归档面前这并不是不可能的. 闪回数据归档的工作原理是将原本只能保存在UNDO表空间的撤销数据额外的以一种历史表的形式保存在指定的普通表空间(permanent类型的表空间)中.并且不像undo_retention参数那样是个影响整个数据库的设置,闪

SAP 数据归档

由于数据库越来越大,对于管理和使用都是一个大的问题,我们归档的目的就是为了是数据库进可能的小,加快用户响应时间,并且对于用户对于数据库的查询来说,进可能加载多的表到内存中. 归档就是上面两个要求的平衡点,首先把不需要经常使用的商务对象数据从数据库中提取出来写到一个归档文件中,然后把相关对象从数据库删除,这就减小数据库大小.并且这些归档数据同样还是可以被用户读取和查询的. 注意商业对象可能在数据库中跨多个表存储,归档对象是把这些表中这个商业对象全部归结到这个对象来的. 然后才会在所有这些表中删除关

tar命令--数据归档

虽然zip命令能够很好的将数据压缩和归档到单个文件,蛋挞不是linux 和unix的标准归档工具. ta命令最开始是用来将文件写到磁盘设备上的归档.然而他也能把输出写道文件里. 你会发现这个可选参数是真的多!!! 可以没有时间换成简易版:tar命令--数据归档(二) tar --help 用法: tar [选项...] [FILE]... GNU ‘tar’ 将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件. 示例 tar -cf archive.tar foo bar

Delphi中多线程用消息实现VCL数据同步显示

Delphi中多线程用消息实现VCL数据同步显示 Lanno Ckeeke 2006-5-12 概述: delphi中严格区分主线程和子主线程,主线程负责GUI的更新,子线程负责数据运算,当数据运行完毕后,子线程可以向主线程式发送消息,以便通知其将VCL中的数据更新. 实现: 关键在于消息的发送及接收.在消息结构Tmessage中wParam和lParam类型为Longint,而指针类型也定义为Longint,可以通过此指针来传递自己所感兴趣的数据.如传递字符数组: 数组定义: const MA

【Qt5开发及实例】24、数据柱形图显示

数据柱形图显示 1.我们首先把这个这个视图的表格部分表示出来 mainwindow.h /** * 书本:[Qt5开发及实例] * 功能:数据柱形图显示,这个类是表格显示 * 文件:mainwindow.h * 时间:2015年1月28日18:50:54 * 作者:cutter_point */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QStandardItemModel>

EXTJS中grid的数据特殊显示,不同窗口的数据传递

//EXTJS中grid的数据特殊显示renderer : function(value, metaData, record, rowIndex, colIndex, store, view) { var USED_AMOUNT_ = 0; for (var i = 0; i < matMonthPlanHisList.length; i++) { if(matMonthPlanHisList[i].MAT_NO_ == record.get('MAT_NO_')){ USED_AMOUNT_

String强制转换为Date,freemarker标签里date数据的显示问题

String强制转换为Date,freemarker标签里date数据的显示问题 http://blog.sina.com.cn/s/blog_617f5d090101ut63.html (2014-05-16 16:44:34) 转载▼   分类: 工作 解决了两个问题 1. String强制转换为Date SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");    String dateStr = request.g

C#.Net 给DataGridView列绑定数据和显示列名的方法

选择DataGridView控件,在属性中选择Colums属性项点击,编辑DataGridView控件的列,可以通过列编辑器添加多个列项,其中列属性的中HeadText是对外显示的,即向用户呈现的,Name是用于命名列对象的,而DataPropertyName是用于指定你将数据源的那一列绑定到该列上的,就是这个列属性可以DataGridView中的列绑定指定的数据,具体只需要将DataPropertyName列属性指定为数据源的某个列名即可,例如:数据源中一列为“UserName”,则将Data

PHP从零单排(十四)数据分页显示的原理及实现

分页显示是WEB编程中最频繁处理的环节之一.所谓分页显示,就是通过程序将结果集一段一段的来显示.实现分页显示,需要两个初始参数:每页显示多少记录和当前是第几页.再加上完整的结果集,就可以实现数据的分页显示.至于其他功能,比如上一页.下一页等均可以根据以上信息加以处理得到. 要取得某表中的前10条记录,可以使用如下SQL语句: SELECT * FROM a_table LIMIT 0,10 要查找第11到第20条记录,使用的SQL语句如下所示: SELECT * FROM a_table LIM