如果当前访问的操作是存在(必须是实际在控制器中定义过)的,系统会检测当前操作是否具有前置和后置操作,如果存在就会按照顺序执行,前置和后置操作的方法名是在要执行的方法前面加 _before_和_after_,例如:
namespace HomeController;
use ThinkController;
class IndexController extends Controller{
//前置操作方法
public function _before_index(){
echo 'before<br/>';
}
public function index(){
echo 'index<br/>';
}
//后置操作方法
public function _after_index(){
echo 'after';
}
}
如果我们访问 http://serverName/index.php,结果会输出
before
index
after
如果在操作方法里面使用了exit或者error方法的话 有可能不会再执行后置方法了,例如:
namespace HomeController;
use ThinkController;
class IndexController extends Controller{
//前置操作方法
public function _before_index(){
echo 'before<br/>';
}
public function index(){
echo 'index<br/>';
exit;
}
//后置操作方法
public function _after_index(){
echo 'after';
}
}
如果我们再次访问结果会输出
before
index