ThinkPHP开发指南-模型-高级模型之字段过滤

来自站长百科
跳转至: 导航、​ 搜索

导航:上一页

基础模型类内置有数据自动完成功能,可以对字段进行过滤,但是必须通过Create方法调用才能生效。高级模型类的字段过滤功能却可以不受create方法的调用限制,可以在模型里面定义各个字段的过滤机制,包括写入过滤和读取过滤。

字段过滤的设置方式只需要在Model类里面添加 $_filter属性,并且加入过滤因子,格式如下:

PHP代码

protected $_filter = array(    

‘过滤的字段’=>array(‘写入过滤规则’,’读取过滤规则’,是否传入整个数据对象),    

)    

过滤的规则是一个函数,如果设置传入整个数据对象,那么函数的参数就是整个数据对象,默认是传入数据对象中该字段的值。

举例说明,例如我们需要在发表文章的时候对文章内容进行安全过滤,并且希望在读取的时候进行截取前面255个字符,那么可以设置:

PHP代码

protected $_filter = array(    

'content'=>array('contentWriteFilter','contentReadFilter'),    

)   

其中,contentWriteFilter是自定义的对字符串进行安全过滤的函数,而contentReadFilter是自定义的一个对内容进行截取的函数。通常我们可以在项目的公共函数文件里面定义这些函数。