夺命雷公狗ThinkPHP项目之----企业网站22之网站前台中间层(解决代码冗余)

我们如果这样写代码虽然可以实现头部二级分类的显示,但是如果再别的控制器下那么会出现显示不了。。

如果再加多一段一样的代码也可以实现出一样的效果:

但是这样会导致代码冗余现象,所以我们为了解决这个问题,可以通过一个中间层来处理,所以我们创建一个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);
    }
}

我们的做法是用构造方法来实现,因为网站会优先去执行构造方法,然后再去执行别的方法。。

然后我们在首页的IndexController.class.php和首页别的控制器下直接继承我们的Common中间层问题即可解决代码冗余问题:

然后在来到我们的页面上即可发现网站头部也可以成功展现出我们想要的二级栏目的效果:

时间: 2024-08-02 11:02:14

夺命雷公狗ThinkPHP项目之----企业网站22之网站前台中间层(解决代码冗余)的相关文章

夺命雷公狗ThinkPHP项目之----企业网站1之快速搭建后台

我们还是老规矩照老方法,将框架里面多余的东西都干掉,然后在index.php里面将框架搭建起来 <?php //定义项目目录 define('APP_PATH','./WEB/'); //开启调试 define('APP_DEBUG',True); //包含thinkphp项目入口文件 require "Thinkphp/Thinkphp.php"; 然后进入WEB目录下,并复制一个Home然后改名为Admin 然后再Index控制器下进行操作 代码如下所示: <?php

夺命雷公狗ThinkPHP项目之----企业网站28之网站前台左侧导航的实现

我们基于刚才在model层的找顶级分类的代码在进行修改即可: <?php namespace Home\Controller; use Think\Controller; class CommonController extends Controller { function __construct(){ //继承父类的构造方法,所以网站在执行的时候会先执行他 parent::__construct(); //头部二级分类的显示 开始 $mod = M("Category");

夺命雷公狗ThinkPHP项目之----企业网站4之数据库连接

我们众所周知,我们在开发的时候网站是需要连接上我们的数据库的,毕竟数据库是网站的最核心之一嘛,废话不多说直接开干.... 我们先找到:config.php文件对她进行修改,因为我们网站前后台都用到数据库,所以我们直接在yao\WEB\Common\Conf下找到config.php前后台共享的文件里面修改下数据库配置即可.. 代码如下所示: <?php return array( //'配置项'=>'配置值' //系统中允许访问的模块(前后台) 'MODULE_ALLOW_LIST' =>

夺命雷公狗ThinkPHP项目之----企业网站26之网站前台列表页的显示和完成分页功能

我们用大I接收到我们get过来的栏目页的id然后通过文章的ar_cateid 来判断是不是属于该栏目下的,如果文章表ar_cateid = 栏目表的cate_id 那么就可以选出我们要查找的信息, 然后再遍历到视图即可... <?php namespace Home\Controller; use Think\Controller; class ListsController extends CommonController { public function lists(){ //获取栏目的i

夺命雷公狗ThinkPHP项目之----企业网站27之网站前台单页的完成(从百度编辑器里面取出文章数据)

我们的单页面里主要是为了可以取出文章分类表的栏目内容,废话先不说, 我们的实现要点: 1...获取get过来的栏目cate_id 2...然后用条件查询栏目表 <?php namespace Home\Controller; use Think\Controller; class PageController extends CommonController { public function page(){ $catid = I('cate_id'); $mod = D("Categor

夺命雷公狗ThinkPHP项目之----企业网站21之网站前台二级分类显示名称(TP自定义函数展示无限极分类)

我们实现网站二级分类的显示的时候,先要考虑的是直接取出顶级栏目,控制器代码如下所示: <?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ $mod = M("Category"); $where['cate_pid'] = '0'; //这样写可以达到一种防SQL注入的效果 $cate =

夺命雷公狗ThinkPHP项目之----企业网站20之网站前台头尾分离

我们的网站直接让他头尾进行分离即可: 然后在代码里面找到id 为header的这段代码: 然后将整个div的内容都给弄出来,然后在view里面创建一个Public的目录,然后在创建一个header.html的文件,将这段代码直接给放进去即可... 然后再会到我们首页的index.html页面下用tp为我们准备好的标签对她引入即可: 然后我们回到浏览器里面测试以下,即可发现测试已经成功了:

夺命雷公狗ThinkPHP项目之----企业网站17之网站配置页的添加

为了网站可以智能一点,所以我们开始来写一个网站配置的功能.. 所以我来写他的数据表: 先来完成他的添加功能,页面效果如下所示: lists.html代码如下所示: <!doctype html> <html> <head> <meta charset="UTF-8"> <title>后台管理</title> <link rel="stylesheet" type="text/cs

夺命雷公狗ThinkPHP项目之----企业网站18之网站配置列表页的完成

我们点击下配置列表即可查看我们列表页的配置信息了: 其实这个最简单了,首先我们先来完成他控制器的代码: public function lists(){ $mod = M('Conf')->select(); $this -> assign('mod',$mod); $this -> display(); } 查找到了,后我们直接到列表页进行遍历数据即可: <!doctype html> <html> <head> <meta charset=&