1.新建控制器:
默认前台模块为例:新建控制器文件 User.php
书写内容:
// 声明命名空间
namespace app\index\controller;
// 声明控制器
class User{
// 声明方法
public function index(){
return “我是User控制器下的index方法”;
}
}`
注意:
1、控制器文件名必须首字母大写,文件名采用驼峰命名。
2、控制器名必须跟文件名一一对应
3、命名空间必须和文件名对应
2、控制器如何加载页面
引入系统类:use think\View;
使用fetch方法输出视图
$view=new \think\View;
return $view->fetch();
3.前置操作
* 前置方法 把一些公共的设置提取成方法进行调用
* 前置方法必须结合系统控制器,继承
* beforeActionList变量声明
protected $beforeActionList=[
'one',
// 不想让谁使用前置方法two
'two'=>['except'=>"index"],
// 仅仅可以让谁使用前置方法three
'three'=>['only'=>'index'],
];
可以为某个或者某些操作指定前置执行的操作方法,设置 beforeActionList 属性可以指定某个方法为其他
方法的前置操作,数组键名为需要调用的前置方法名,无值的话为当前控制器下所有方法的前置方法。
表示这些方法不能使用前置方法
['except' => '方法名,方法名']
仅能让方法名使用前置方法
['only' => '方法名1,方法名N']
public function one(){
echo "我是 one方法";
}
public function tow(){
echo "我是tow方法";
}
public function three(){
echo "我是three方法";
}
6、页面跳转
页面跳转基于系统控制器类,所以控制器必须继承系统控制器
方法所在路径
C:\AppServ\www\tp5\thinkphp\library\traits\controlle\Jump.php
成功跳转:success()方法
success(提示信息,跳转地址,用户自定义数据,跳转跳转,header信息);
失败跳转:error()方法;
相关配置文件
// 默认跳转页面对应的模板文件
'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',
'dispatch_error_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',
7、重定向
作用:
重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其 它位置
基于系统控制器类,所以必须先去继承
使用:
redirect(‘跳转地址’,‘其他参数’,code,‘隐士参数’);
我们可以直接给他一个跳转地址即可
$this->redirect(“url”);
8.空控制器和空操作
主要解决一些用户恶意的地址栏输入,报错影响交互
基于系统控制器类,所以必须先去继承
使用: _empty构造方法声名
1、空操作
public function _empty(){
$this->redirect('index/index');
}
2、空控制器
// 声明命名空间
namespace app\index\controller;
use think\Controller;
// 声明控制器
class Error extends Controller{
// index
public function index(){
$this->redirect('index/index');
}
// 空操作
public function _empty(){
$this->redirect('index/index');
}
}
3.注意:
1、网站上线的时候每一个控制器都必须添加空操作
2、不论前台后台都需要写一个空控制器