ThinkPHP3.2基础教程(36)--控制器-前置和后置操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP3.2基础教程(36)--控制器-前置和后置操作相关的知识,希望对你有一定的参考价值。

  前置和后置操作指的是在执行某个操作方法之前和之后会自动调用的方法,不过仅对访问控制器有效。

  其他的分层控制器层和内部调用控制器的情况下前置和后置操作是无效的。

  系统会检测当前操作是否具有前置和后置操作,如果存在就会按照顺序执行,前置和后置操作的定义方式如下:

    <?php
    namespace Home\Controller;
    use Think\Controller;
    class IndexController extends Controller{
        //前置操作方法
        public function _before_index(){
            echo ‘before<br/>‘;
        }
        public function index(){
            echo ‘index<br/>‘;
        }
        //后置操作方法
        public function _after_index(){
            echo ‘after<br/>‘;
        }
    }

  如果我们访问 http://serverName/index.php/Home/Index/index,结果会输出

before
index
after

  前置和后置操作的注意事项如下:
  1. 如果当前的操作并没有定义操作方法,而是直接渲染模板文件,那么如果定义了前置和后置方法的话,依然会生效。真正有模板输出的可能仅仅是当前的操作,前置和后置操作一般情况是没有任何输出的。
  2. 需要注意的是,在有些方法里面使用了exit或者错误输出之类的话 有可能不会再执行后置方法了。例如,如果在当前操作里面调用了系统Action的error方法,那么将不会再执行后置操作,但是不影响success方法的后置方法执行。

 



以上是关于ThinkPHP3.2基础教程(36)--控制器-前置和后置操作的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP3.2基础教程(37)--控制器-Action参数绑定

ThinkPHP3.2基础教程(33)--路由功能

ThinkPHP3.2基础教程(20)--模型-CURD操作-数据写入

ThinkPHP3.2基础教程--模型-字段定义

ThinkPHP3.2基础教程(19)--模型-CURD操作-数据创建

ThinkPHP3.2基础教程(21)--模型-CURD操作-数据读取