ThinkPHP---thinkphp拓展之空操作

本文详细介绍了ThinkPHP框架中的空操作机制,包括空操作方法和空操作控制器的概念及应用场景。通过具体实例展示了如何利用空操作机制来自定义错误页面,实现URL优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【一】概论

(1)定义

空操作指系统在找不到指定操作方法的时候。会定位到空操作方法 / 控制器来执行,利用这个机制,我们可以实现错误页面的自定义和URL的优化

(2)场景

常用于错误页面的自定义

(3)一般的系统自带的错误页面分两种

        ①调试 / 开发阶段:会显示出错误信息、错误位置、当前TP版本

        ②生成阶段:显示错误提示、TP版本。安全性相对于之前有所提高,但用户还是较差

(4)空操作

针对以上情况,这时便可以用空操作的机制进行错误页面美化

(5)说明------针对方法和控制器

   1. 空操作方法:在控制器里可以定义一个操作方法,名字叫做_empty();若控制器里方法找不到时便会执行空操作

   2. 空操作控制器:在TP里存在空控制器,若找不到指定控制器便会访问空控制器。空控制器文件名为EmptyController.class.php

(6)实现:

   1. 空操作方法_empty()

      例如控制器EmailController.class.php里创建空方法_empty(),如果访问Email控制器下的方法不存在,则调用_empty()方法

      注意:只是针对当前控制器的空操作方法

//空方法
        public function _empty(){
            echo "您好,页面不存在哦^_^,即" . ACTION_NAME . "操作不存在";
        }

此时浏览器的URL输入不存在的模板Email控制器下的index.html模板,浏览器报错提示如下

常见的系统常量:http://570109268.iteye.com/admin/blogs/2415438

      2. 空控制器EmptyController.class.php

<?php
    namespace Admin\Controller;
    use Think\Controller;
    class EmptyController extends Controller{
        public function _empty(){
            echo "访问的页面不存在,空控制器";
        }
    }
?>

接下来访问空控制器+空方法,这时会优先调用空控制器的处理方法。如下访问空控制器aaa,下的空方法aaa

(7)案例:用空操作方法实现404页面的自定义

分析:

第一步:创建空操作控制器和空方法

空控制器EmptyController.class.php;空操作方法:_empty()

第二步:展示静态页

将错误模板页面复制到指定位置Application\Admin\View\Empty\error.html,修改静态资源路径

第三步:

在空控制器中的空操作方法,展示错误的模板页面

①EmptyController.class.php:

<?php
    namespace Admin\Controller;
    use Think\Controller;
    class EmptyController extends Controller{
        public function _empty(){
            $this->display('Empty/error');//错误页面的展示
        }
    }
?>

②当控制器存在,方法不存在时会访问该控制器下的_empty()方法

   例如访问Email控制器下的aaa方法,此时会调用Email控制器下的_empty方法。所以还要对该方法进行修改

EmailController.class.php:

//空方法
        public function _empty(){
            // echo "您好,页面不存在哦^_^,即" . ACTION_NAME . "操作不存在";
            $this->display('Empty/error');
        }

 

 

 

 

          

 

 

 

 

 

 

 

 

 

 

 

.

 

转载于:https://www.cnblogs.com/jianxian/p/8715670.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值