4.11 前置和后置操作
通用前置和后置操作
在ThinkPHP中,你可以给任何一个操作定义前置和后置操作方法。
前置操作的定义就是在当前操作方法的前面添加_before_前缀,而后置操作的定义就是在当前操作方法的前面添加_after_前缀。
例如,我们已经给UserAction定义了一个del操作方法,我们可以定义:
_before_del() 在del操作之前执行
_after_del() 在del操作之后执行(del操作正常执行完毕)
内置前置和后置操作
另外,如果使用系统内置的insert和update操作的话,会首先检查是否存在_operation方法,这个方法是系统在表单提交时候的默认前置操作。
_operation方法没有任何参数,主要是用来检测表单的提交数据。
在insert或者update执行完毕后,系统会检查是否存在_trigger方法,这个方法是系统默认的数据更新触发器方法。
_trigger方法只有一个参数,也就是要保存的Vo对象。
列表过滤方法
如果你使用系统内置的index方法,系统还会检查_filter方法,该方法负责对列表数据进行过滤,当你的列表需要针对不同的用户进行判断和过滤的时候,这个方法非常有效。