一、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("登陆失败!");//默认跳转到上一个界面
}
}
}
}
现在许多网页,需要在登录情况下某些功能才能使用,所以某些网页需要未登录状态自动跳转登录功能:
我们利用面向对象的继承特性,新建父类Base.class.php
<?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;
}
}
}
子类继承:
<?php
namespace Home\Controller;
use Home\Controller\BaseController;
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="width:100%;height:60px;"></div>
<block name="neirong"></block>
<div style="width:100%;height:100px;"></div>
</body>
</html>

绿色的为头部 ,蓝色为尾部中间即为内容
比如我们中间加上一个其余颜色的div元素:
<?php
namespace Home\Controller;
use Home\Controller\BaseController;
class IndexController extends BaseController{
public function index(){
$this->show();
}
}
<?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);
}
}
<extend name="Base:base" />
<block name="tou">
<style type="text/css">
#nr{
width:100%;
height:200px;
background-color:yellow;
}
</style>
</block>
<block name="neirong">
<div id="nr" ></div>
</block>

浙公网安备 33010602011771号