zoukankan      html  css  js  c++  java
  • tp父类及模板继承

    一、TP父类方法继承

    session用法

    <?php
    namespace HomeController;
    use ThinkController;
    class LoginController extends Controller{
        public function login(){
            //显示页面,实现登录
            if(empty($_POST)){
                $this->show();
            }else{
                //处理登录逻辑
                $uid = $_POST["uid"];
                $pwd = $_POST["pwd"];
                 
                $db = D("Users");
                $arr = $db->find($uid);
                if($arr["pwd"]==$pwd&&!empty($pwd)){
     
                    session("uid",$uid);
                                    //启动session
     
                    $url = U("Index/index");//不同控制器下的方法要写控制器名
                    //不在不同模块下要加上模块名
                    $this->success("登录成功!",$url);
                }else{
                    $this->error("登陆失败!");//默认跳转到上一个界面
                }
            }
        }
    }                           
    

      现在许多网页,需要在登录情况下某些功能才能使用,所以某些网页需要未登录状态自动跳转登录功能:

    我们利用面向对象的继承特性,新建父类Base.class.php

    <?php
    namespace HomeController;
    use ThinkController;
    class BaseController extends Controller{
         
        public function __construct(){
            parent::__construct();        //调用父类构造函数,程序运行时自动执行
            if(session("?uid")){
                 
            }else{
                $this->redirect('Login/login',array(),0,''); //如果用户每用户登录,重定向到登录界面
                exit;
            }
        }
    }
    

      子类继承:

    <?php
    namespace HomeController;
    use HomeControllerBaseController;
    class IndexController extends BaseController{   //index继承分类base
         
        public function index(){
           echo session("uid");
        }
         
    }
    

      二、父类模板继承

    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title></title>
        <block name="tou"></block>         
        </head>
         
        <body>
        <div style="100%;height:60px;"></div>
         
        <block name="neirong"></block>
        <div style="100%;height:100px;"></div>
        </body>
    </html>
    

      

    绿色的为头部 ,蓝色为尾部中间即为内容

    比如我们中间加上一个其余颜色的div元素:

    <?php
    namespace HomeController;
    use HomeControllerBaseController;
    class IndexController extends BaseController{
         
        public function index(){
           $this->show();
        }
         
    }
    

      

    <?php
    namespace HomeController;
    use ThinkController;
    class BaseController extends Controller{
         
        public function __construct(){
            parent::__construct();
            if(session("?uid")){
                 
            }else{
                $this->redirect('Login/login',array(),0,'');
                exit;
            }
            //父类模板所需要的数据
            $db = D("rules");
            $arr = $db->select();
            $this->assign("menu",$arr);
        }
         
    }
    

      

    <extend name="Base:base" />
    <block name="tou">
        <style type="text/css">
            #nr{
                100%;
                height:200px;
                background-color:yellow;
                }
        </style>
    </block>
     
    <block name="neirong">
        <div id="nr" ></div>
    </block>
    

      


  • 相关阅读:
    maven使用
    Java生成XML
    Raphael使用
    pybombs 安装
    Archlinux 踩坑实录
    Office2016 转换零售版为VOL版
    神奇的linux发行版 tiny core linux
    Cubietruck查看CPU及硬盘温度
    在Cubieboard上关闭irqbalance服务避免内存泄漏
    cubieboard中使用py-kms与dnsmasq搭建局域网内全自动KMS激活环境
  • 原文地址:https://www.cnblogs.com/rose1324/p/8695258.html
Copyright © 2011-2022 走看看