tp父类及模板继承

老子叫甜甜 提交于 2019-12-30 03:48:43

一、TP父类方法继承

session用法

用登录页面做例子

 
<?php
namespace Home\Controller;
use Think\Controller;
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("登陆失败!");//默认跳转到上一个界面
            }
        }
    }
}                           

 在以后做项目中有可能做好多页面都需要加session,为了减少代码量可以做个父类,让后面的方法继承就可以了

新建个父类

 
<?php
namespace Home\Controller;
use Think\Controller;
class BaseController extends Controller{
     
    public function __construct(){
        parent::__construct();
        if(session("?uid")){
             
        }else{
            $this->redirect('Login/login',array(),0,'');
            exit;
        }
    }
}

 index方法继承

 
<?php
namespace Home\Controller;
use Home\Controller\BaseController;
class IndexController extends BaseController{
     
    public function index(){
       echo session("uid");
    }
     
}

 登录后

如果直接打开登陆后的页面,会直接跳转回登录页

二、父类模板继承

新建新的文件

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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="width:100%;height:60px;"></div>
     
    <block name="neirong"></block>
    <div style="width:100%;height:100px;"></div>
    </body>
</html>

 

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

 

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

 

 
<?php
namespace Home\Controller;
use Think\Controller;
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);
    }
     
}

 

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<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="width:100%;height:60px;">
        <foreach name="menu" item="v">
            <span style="color:#fff;">{$v.name}</span>
        </foreach>
    </div>
     
    <block name="neirong"></block>
    <div style="width:100%;height:100px;"></div>
    </body>
</html>

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!