thinkphp空操作和空控制器

所谓的空操作就是指当形同找不到请求的操作方法时,就调用这个空操作:

<?php
namespace Home\Controller;
use Think\Controller;
class CityController extends Controller{
public function _empty($name){
//把所有城市的操作解析到city方法
$this->city($name);
}
//注意 city方法 本身是 protected 方法
protected function city($name){
//和$name这个城市相关的处理
echo '当前城市' . $name;
}
}
当我们在浏览器里输入http://localhost/index.php/Home/City/beijing;

City控制器里并没有定义beijing方法,但输出结果是当前城市:beijng;

原因就是当系统找不到定义的方法时调用了_empty();方法;

如果我们在_empty()里对操作名进行判断然后进行相应的操作,这样就可以缩短url地址

同理空控制器是指当系统找不到请求的控制器名称的时候,系统会尝试定位空控制器

<?php
namespace Home\Controller;
use Think\Controller;
class EmptyController extends Controller{
public function _empty(){
//根据当前控制器名来判断要执行那个城市的操作
$cityName = CONTROLLER_NAME;
$this->city($cityName);
}
//注意 city方法 本身是 protected 方法
protected function city($name){
//和$name这个城市相关的处理
echo '当前城市' . $name;
}
这样我们就可在浏览器里输入

http://localhost/index.php/Home/beijing

这样大大简化了url;并且减少了代码


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值