thinkphp5.1基础2

控制器的前置方法:
设置 beforeActionList属性可以指定某个方法为其他方法的前置操作,数组键名为需要调用的前置方法名,无值的话为当前控制器下所有方法的前置方法。
[‘except’ => ‘方法名,方法名’] 表示这些方法不执行前置方法
[‘only’ => ‘方法名,方法名’] 表示这些方法使用前置方法

代码部分:

class Before extends Controller
{
    protected $beforeActionList = [
        'first',
        //one方法执行的时候不调用second
        'second' =>  ['except'=>'one'],
        //指定只能one调用
        'third'=> ['only'=>'one'],
    ];
    protected $flag = false;
    protected function first(){
        echo 'first <br/>';
    }
    protected function second(){
        echo 'second <br/>';
    }
    protected function third(){
        echo 'third <br/>';
    }
     public function one(){
        return 'one';
    }
    public function two(){
        return 'two';
    }

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

public function index(){
        if ($this->flag){
            //设置成功后将跳转到指定url,如果不指定url,则返回$_SERVER['HTTP_REFERER']
            $this->success('成功','../');
        }else{
            //错误页面的默认跳转页面是返回前一页,通常不需要设置
            $this->error('失败');
        }
    }

默认跳转等待的时间是3秒,success和error方法对应的是两个模板,可以自行修改。error方法会自动判断当前请求是否属于Ajax请求,如果属于Ajax请求则会自动转换为default_ajax_return配置的格式返回信息。 success在Ajax请求下不返回信息,需要开发者自行处理。
模板文件可以使用模板标签,并且可以使用下面的模板变量:
在这里插入图片描述
空方法和空控制器

  1. 当访问了一个不存在的方法时,系统会报错,我们可以使用_empty()来拦截;
public function _empty($name) 
{ 
return '不存在当前方法:'.$name; 
}
  1. 当访问了一个不存在的控制器时,系统也会报错,我们可以使用 Error 类来拦截;
class Error 
{ 
public function index(Request $request) 
{ 
return '当前控制器不存在:'.$request->controller(); 
} 
}
  1. 系统默认为 Error 类,如果需要自定义,则在 app.php 配置文件中修改; 默认的空控制器名:
    ‘empty_controller’ => ‘Error’,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值