一、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>