控制器操作
//配置控制器方法后缀
'ACTION_SUFFIX'=>'Action',
//每个方法后面加上Action,对于URL访问不需要加Action
class UserController extends Controller {
public function indexAction() {
echo 'index';
}
public function testAction() {
echo 'test';
}
事件 控制器层
第一步:创建事件控制器目录:home目录Event文件夹;
第二步:创建 UserEvent.class.php 类;
调用
// $userEvent = A('Admin/User', 'Event'); //admin模块下
$userEvent->test();
echo 'test';
}
//允许二级控制器 'CONTROLLER_LEVEL'=>2, //一般不设置 一般用一级
ThinkPHP 控制器还提供了两个特殊的方法,前置操作方法_before_index()和后置操 作方法_after_index()。这两个方法,在控制器 index()方法的时候,一个在之前执行, 一个在之后执行。
.Action 参数绑定
参数绑定是通过直接绑定 URL 地址中的变量作为操作方法的参数,可以简化方法的定 义甚至路由的解析。 //启用Action参数绑定,默认为true,可以不写
'URL_PARAMS_BIND'=>true,
//变量名为$id 可以 设置默认值 public function index($id=1) 或 URL传递id
//传递两个参数
class UserController extends Controller {
public function index($id, $type) {
echo 'id:'.$id.',type:'.$type;
}
}
//http://localhost/php004/user/index/id/5/type/a
当定义按顺序传参绑定了
'URL_PARAMS_BIND_TYPE'=>1,
就可以http://localhost/php004/user/index/5/a 直接传参
跳转和重定向
class UserController extends Controller {
public function index(){
$flag = true; if ($flag) {
$this->success('新增成功!', '../User/all');
} else { //
会跳转到本页的上一页 $this->error('新增失败!');
}
}
public function all(){
echo '显示所有用户列表';
}
//设置5秒
$this->success('新增成功!', 'list', 5);
//默认错误跳转对应的模板文件
'TMPL_ACTION_ERROR' =>THINK_PATH .'Tpl/dispatch_jump.tpl',
//默认成功跳转对应的模板文件
'TMPL_ACTION_SUCCESS'=>THINK_PATH.'Tpl/dispatch_jump.tpl',
//可自定义成功和错误提示模版页面
'TMPL_ACTION_SUCCESS'=>'Public/success',
'TMPL_ACTION_ERROR'=>'Public/error',
ThinkPHP 还单独提供了重定向方法 redirect(),参数和 U()方法一样。这个方法使 用的是 URL 规则。
$this->redirect('User/test', array('id'=>5), 5, '页面跳转中...');
直接使用 redirect()函数。
redirect('http://www.baidu.com', 5, '页面跳转中...');