系统会检测当前操作是否具有前置和后置操作,如果存在就会按照顺序执行,例如,我们在UserAction类里面定义了_before_insert() 和 _after_insert() 操作,那么执行User模块的insert操作的时候,会按照顺序执行下面的操作:
_before_insert
insert
_after_insert
特殊情况是,当前的add操作并没有定义操作方法,而是直接渲染模板文件,那么如果定义了_before_add 和 _after_add 方法的话,依然会生效,也会按照这个顺序来执行add操作。真正有模板输出的可能仅仅是当前的add操作,前置和后置操作一般情况是没有任何输出的。前置和后置操作的方法名是在要执行的方法前面加 _before_和_after_,例如:
解决方法为手动定义函数。如
function insert(){
$this->display();
}
没有评论:
发表评论