夺命雷公狗ThinkPHP项目之----企业网站24之网站前台列表页面包屑导航的显示
我们做面包屑导航的原理其实也是很简单的,我们的思路是:
首先找到该分类的id ,我们可以通过大 I来进行获取得到:
然后通过 大 D 方法让数据进入model层里面进行循环迭代查询,
当然,测试时候发现了一个效果是出来了,不过是反转了的,,所以我们通过array_reverse的函数让他反过来。。
废话不多说,直接开干,,,
先来创建一个CategoryModel.class.php的模型:

<?php
namespace Home\Model;
use Think\Model;
class CategoryModel extends Model{
public function getparent($cateid){
$res = array();
//循环找出当前栏目的信息,如果为0退出循环
while($cateid){
$cates = $this -> where("cate_id=$cateid") -> find();
$res[] = array(
'cate_id' => $cates['cate_id'],
'cate_name' => $cates['cate_name']
);
//将他上级栏目赋值给他
$cateid = $cates['cate_pid'];
}
//array_reverse 相反顺序的新数组
return array_reverse($res);
}
}
然后在控制器里面让我们接收到的cate_id 传进我们的model层里面让他进行迭代查询:

<?php
namespace Home\Controller;
use Think\Controller;
class ListsController extends CommonController {
public function lists(){
$cateid = I('cate_id');
$mod = D('Category');
$res = $mod -> getparent($cateid);
$this -> assign('res',$res);
//dump($res);
$this->display();
}
}
然后让我们的数据分配到视图里面:

这样文字即可实现了,效果如下所示:

效果是出来了,但是后面这里还有一个 > 分割符,那么原理也很简单,我们直接加他一个判断问题即可解决:

这里用到的 $i 是tp 给我们预留的一个框架变量。。
然后测试下后果:

效果虽然完成了,但是面包屑导航是经常用得上的,为了防止代码冗余我们老规矩将他放到CommonController.class.php里面,尽量让他少点重复:

<?php
namespace Home\Controller;
use Think\Controller;
class CommonController extends Controller {
function __construct(){
//继承父类的构造方法,所以网站在执行的时候会先执行他
parent::__construct();
//头部二级分类的显示 开始
$mod = M("Category");
$where['cate_pid'] = '0';
//这样写可以达到一种防SQL注入的效果
$cate = $mod -> where($where) -> select(); //获取顶级栏目为0的结果集
$this -> assign('cate',$cate);
//dump($cate);
//头部二级分类的显示 结束 //列表页和产品页的面包屑导航 开始
$cateid = I('cate_id');
$mod = D('Category');
$res = $mod -> getparent($cateid);
$this -> assign('res',$res);
//列表页和产品页的面包屑导航 结束 }
}
然后删除掉列表页面里的这些代码,如下所示:

删除掉后再来测试下,结果发现一切正常显示:

然后我们的单页也用这方法去弄即可实现。。。。。。。
夺命雷公狗ThinkPHP项目之----企业网站24之网站前台列表页面包屑导航的显示的更多相关文章
- 夺命雷公狗ThinkPHP项目之----企业网站28之网站前台左侧导航的实现
我们基于刚才在model层的找顶级分类的代码在进行修改即可: <?php namespace Home\Controller; use Think\Controller; class Commo ...
- 夺命雷公狗ThinkPHP项目之----企业网站25之网站前台面包屑导航URL的完善
如果想取出面包屑导航的url那么就必须在model层里面进行多取一个了: <?php namespace Home\Model; use Think\Model; class CategoryM ...
- 夺命雷公狗ThinkPHP项目之----企业网站24之网站前台获取当前栏目和顶级栏目
我们现在要实现的是取出网站当前栏目名称和顶级分类名称,如下所示: 列表页的和单页的不能总是写死的吧?? 我能就要想办法去让他变活的才可以解决问题噢,我们已经有了他的cate_id ,然后我们就可以通过 ...
- 夺命雷公狗ThinkPHP项目之----企业网站1之快速搭建后台
我们还是老规矩照老方法,将框架里面多余的东西都干掉,然后在index.php里面将框架搭建起来 <?php //定义项目目录 define('APP_PATH','./WEB/'); //开启调 ...
- 夺命雷公狗ThinkPHP项目之----企业网站26之网站前台列表页的显示和完成分页功能
我们用大I接收到我们get过来的栏目页的id然后通过文章的ar_cateid 来判断是不是属于该栏目下的,如果文章表ar_cateid = 栏目表的cate_id 那么就可以选出我们要查找的信息, 然 ...
- 夺命雷公狗ThinkPHP项目之----企业网站18之网站配置列表页的完成
我们点击下配置列表即可查看我们列表页的配置信息了: 其实这个最简单了,首先我们先来完成他控制器的代码: public function lists(){ $mod = M('Conf')->se ...
- 夺命雷公狗ThinkPHP项目之----企业网站27之网站前台单页的完成(从百度编辑器里面取出文章数据)
我们的单页面里主要是为了可以取出文章分类表的栏目内容,废话先不说, 我们的实现要点: 1...获取get过来的栏目cate_id 2...然后用条件查询栏目表 <?php namespace H ...
- 夺命雷公狗ThinkPHP项目之----企业网站22之网站前台中间层(解决代码冗余)
我们如果这样写代码虽然可以实现头部二级分类的显示,但是如果再别的控制器下那么会出现显示不了.. 如果再加多一段一样的代码也可以实现出一样的效果: 但是这样会导致代码冗余现象,所以我们为了解决这个问题, ...
- 夺命雷公狗ThinkPHP项目之----企业网站21之网站前台二级分类显示名称(TP自定义函数展示无限极分类)
我们实现网站二级分类的显示的时候,先要考虑的是直接取出顶级栏目,控制器代码如下所示: <?php namespace Home\Controller; use Think\Controller; ...
随机推荐
- 【C++】虚函数
I 动态绑定.多态.虚函数.对象的静态类型与动态类型 1.基类中有两种函数: 派生类直接继承不做改变 派生类重新定义成适合自身的版本覆盖掉基类的函数 对于第一种就是普通的基类成员函数,第二种通常通过将 ...
- JDK version
Java 1.2 uses major version 46 Java 1.3 uses major version 47 Java 1.4 uses major version 48 Java 5 ...
- html5头部说明
<!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 --><html lang="zh-cmn-Hans"> ...
- HTML: 仿写一个财经类静态的网页
要求:仿写一个静态的网页,主要采用HTML+CSS+DIV的布局方式, 新建两个文件:demo.html.demo.css 图片素材:image.zip demo.html代码如下: <!doc ...
- 一些常用的linux命令
查看本机ip地址 ifconfig ln -s phpmyadmin 添加链接 /var/www/ 与html 同级 打开本机电脑硬盘: cd /media/用户名 文件夹的新建命令: sudo ...
- MySQL学习笔记——存储引擎的索引特性
- [3D]绘制XYZ小坐标轴
源码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Slim ...
- Python之路-python环境安装和简单的语法使用
一.环境安装 Win10(安装python3.x): 1.下载安装包 https://www.python.org/downloads/ 2.安装完成后设置环境变量. 桌面-“计算机”-右 ...
- Win32和MFC项目如何输出调试信息到VS的调试窗口
直接举例说明: Win32项目: #include <Windows.h> OutputDebugString(TEXT("调试信息:MyCircleImpl::~MyCircl ...
- django 一些库
https://django-adminactions.readthedocs.io/en/latest/actions.html http://www.ziqiangxuetang.com/djan ...