ThinkPHP实战
上QQ阅读APP看书,第一时间看更新

4.11 空操作

当ThinkPHP找不到请求的操作时,会执行_empty方法,利用该机制,可以实现错误页面和一些URL优化。

本例使用空操作来实现一个用户预览的功能,新建Application/Home/Controller/UserController.class.php,代码如下:

        <? php
        /**
         * Project: thinkphp-inaction
         * User: xialeistudio<1065890063@qq.com>
         * Date: 2016-02-18
         */
        namespace Home\Controller;
        use Think\Controller;
        class UserController extends Controller
        {
            public function _empty($name)
            {
                $this->view($name);
            }
              private function view($name)
              {
                  echo 'name:'.$name;
              }
          }

浏览器访问http://localhost/chapter-4/Home/User/zhangsan,输出“name:zhangsan”。

执行流程如下:

(1)准备执行Home/Controller/UserController.class.php的zhangsan方法;

(2)对应zhangsan方法不存在,执行UserController.class.php的_empty方法,并将zhangsan作为$name传入;

(3)调用UserController的view方法,输出“name:zhangsan”。