Action类提供了一个初始化方法_initialize接口,可以用于扩展需要,_initialize方法会在所有操作方法调用之前首先执行,所以你只要把验证代码放在Action类的_initialize()方法中即可,这样访问该类的方法都经过了验证。参考ThinkPHP完全开发手册13.3节——控制器扩展。
另外,假如你需要验证的Action类比较多,可以专门建立一个验证类,写一次_initialize()方法,然后需要验证的其他Action类继承自该验证类即可。
12345678910111213// 验证类Class AuthorizedAction extends Action{ Public function _initialize(){ // 初始化的时候检查用户权限 $this->checkRbac(); } } // 继承自验证类 Class UserAction extends AuthorizedAction{ Public function userfunction(){ // TO DO ... } }