tp5控制器的基本使用/tp5前置操作/tp5控制器初始化/tp5空操作/tp5跳转和重定向
tp5控制器
<?php
namespace appindexcontroller;
use thinkController;
/**
* Class User
* @package appindexcontroller
* @author weiyongqiang <hayixia606@163.com>
* 其实tp5中可以不集成Controller但是我们使用了Controller中的方法所以要集成
*/
class User extends Controller
{
/**
* @var array
* 我来定义前置操作,所谓前置操作就是在我配置的操作执行之前执行我
*/
protected $beforeActionList = [
"checksession", //在任何操作执行前执行checksession方法
"islogin" => ["except"=>"login"], //在除login之外的其他方法执行前先执行islogin方法
"removesession" => ["only"=>"logout"], //在logout执行前先执行removesession
];
/**
* @param $name
* 如果在本控制器中找不到该操作那就运行我
*/
public function _empty($name)
{
echo $name."这个操作不存在";
}
/**
* 我是控制器初始化方法,执行此控制器的任何操作之前必须先执行我
*/
public function _initialize()
{
Logs::write(time()."访问".$_SERVER["PHP_SELF"]);
}
/**
* @return bool
* 我是前置操作
*/
public function checksession()
{
return empty(session("USERINFO"));
}
/**
* @return bool
* 我是前置操作
*/
public function islogin()
{
$userInfo = session("USERINFO");
return $userInfo.expires > time();
}
/**
* @return bool
* 我是前置操作
*/
public function removesession()
{
return session("USERINFO", null);
}
/**
* 用户登录操作
*/
public function login()
{
if(用户已经登录了){
$this->redirect("Home/index", 302);
//或者使用助手函数
//redirect("Home/index");
}
if(用户信息没有问题){
$this->success("登录成功", "Home/index");
}else{
$this->success("出错了请稍后再试");
}
}
/**
* 用户退出操作
*/
public function logout()
{
redirect("Home/index");
}
}
以上样例中涉及到的知识有: 1. 控制器的定义
2. 控制器的初始化方法:_initialize()
3. 前置操作: 配置protected $beforActionList
4. 跳转和重定向:success和error重定向为redirect
5. 空操作:_empty()当你访问的方法不存在时就执行
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 前端js加密方式
- 下一篇: tp在控制器中和在模板中调用配置文件中的常量