Tp5.0完全开发手册学习(第五章 控制器)

一、定义:

ThinkPHP V5.0的控制器定义比较灵活,可以无需继承任何的基础类,也可以继承官方封装的\think\Controller类或者其他的控制器类。

二、实际路径:

application\入口文件\controller\控制器名.php

三、前置操作:

可以为某个或者某些操作指定前置执行的操作方法,设置 beforeActionList属性可以指定某个方法为其他方法的前置操作,数组键名为需要调用的前置方法名,无值的话为当前控制器下所有方法的前置方法。

['except' => '方法名,方法名']  除。。。。意外的

['only' => '方法名,方法名']    仅。。。怎么样

四、页面跳转和重定向

1、跳转

在应用开发中,经常会遇到一些带有提示信息的跳转页面,例如操作成功或者操作错误页面,并且自动跳转到另外一个目标页面。系统的\think\Controller类内置了两个跳转方法successerror,用于页面跳转提示。

 $this->success('新增成功', 'User/list');

 $this->error('新增失败');

跳转地址是可选的,success方法的默认跳转地址是$_SERVER["HTTP_REFERER"],error方法的默认跳转地址是javascript:history.back(-1);。

默认跳转时间为3秒;

//默认错误跳转对应的模板文件
'dispatch_error_tmpl' => APP_PATH . 'tpl/dispatch_jump.tpl',
//默认成功跳转对应的模板文件

'dispatch_success_tmpl' => APP_PATH . 'tpl/dispatch_jump.tpl',

2、重定向

需要跳转到上次记住的URL的时候使用:redirect()->restore();

五、空操作

空操作是指系统在找不到指定的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化。

public function _empty()
    {
         return 这里是空操作;

    }

六、空控制器

class Error 

{

    public function _empty()
    {
         return 这里是空操作;

    }

}

七、资源控制器

资源控制器可以让你轻松的创建RESTFul资源控制器,可以通过命令行生成需要的资源控制器,例如:

// 生成index模块的Blog资源控制器
php think make:controller index/Blog

或者使用完整的命名空间生成

php think make:controller app\index\controller\Blog

然后你只需要为资源控制器注册一个资源路由:

Route::resource('blog','index/Blog');

设置后会自动注册7个路由规则,如下:

请求类型 生成路由规则 对应操作方法
GET blog index
GET blog/create create
POST blog save
GET blog/:id read
GET blog/:id/edit edit
PUT blog/:id update
DELETE blog/:id delete

猜你喜欢

转载自blog.csdn.net/lugr_shx/article/details/80168793
今日推荐