413 12
发新话题
打印

ThinkPHP高级指南

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方法,该方法负责对列表数据进行过滤,当你的列表需要针对不同的用户进行判断和过滤的时候,这个方法非常有效。

TOP

4.12 Db的更新条件
Db类的where条件支持很多写法。包括数组、HashMap、对象和字符串。
例如:
  • $condition = new HashMap();
  • $condition->put('id',1);
  • $condition->put('name','thinkphp');



  • $condition = new Array();
  • $condition['id'] = 1;
  • $condition['name'] = 'thinkphp';

TOP

4.13 PDO支持
最新的版本引入了PDO的支持,PDO作为ThinkPHP数据库抽象访问层的一个驱动类库,所以要使用PDO只需要在数据库配置文件中定义DB_TYPE 为PDO就可以了,另外增加了DB_PDO_DSN和DB_PDO_PARMS 两个定义,分别用于PDO 的dsn和连接参数。其他的Dao操作没有区别。

TOP

 413 12
发新话题