您的位置:首页 > 编程语言 > PHP开发

一个样例学会tp5控制器的基本使用/tp5前置操作/tp5控制器初始化/tp5空操作/tp5跳转和重定向

2017-07-24 22:44 615 查看
点击进入视频教程

tp5控制器

一个样例明白控制器的定义及使用

<?php

namespace app\index\controller;

use think\Controller;

/**
* Class User
* @package app\index\controller
* @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()当你访问的方法不存在时就执行

关于以上的特性大家可以在使用中得到更为深刻的认识。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php tp5 thinkphp 控制器
相关文章推荐