• 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("登陆失败!");//默认跳转到上一个界面
    			}
    		}
    	}
    }                            
    

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

    新建个父类

    <?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;
    		}
    	}
    }
    

     index方法继承

    <?php
    namespace HomeController;
    use HomeControllerBaseController;
    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="100%;height:60px;background-color:green;"></div>
    	
    	<block name="neirong"></block>
    	<div style="100%;height:100px;background-color:blue;"></div>
        </body>
    </html>
    

     

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

     

    <?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);
    	}
    	
    }
    
    <!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="100%;height:60px;background-color:green;">
    		<foreach name="menu" item="v">
    			<span style="color:#fff;">{$v.name}</span>
    		</foreach>
    	</div>
    	
    	<block name="neirong"></block>
    	<div style="100%;height:100px;background-color:blue;"></div>
        </body>
    </html>
    

     

  • 相关阅读:
    Python【第四章】:socket
    vb与C#的区别,片段记录
    使用XUACompatible来设置IE浏览器兼容模式
    notepad++ 的golang语法高亮
    ReSharper 配置及用法(转)
    宽度可变的Table
    JS禁止选中文本方法【转】
    只借助HTML分别禁用IE8, IE9的兼容视图模式(Compatibility View)
    测试浏览器对js版本的支持
    写有效率的SQL查询(II)(转载)
  • 原文地址:https://www.cnblogs.com/navyouth/p/8572897.html
Copyright © 2020-2023  润新知