发现ThinkPHP里面隐藏了几个有用的方法
发现ThinkPHP里面隐藏了几个有用的方法, model层里面有几个很有用的方法并没有出现在手册里, 下面我列举一些.
发现ThinkPHP里面隐藏了几个有用的方法, model层里面有几个很有用的方法并没有出现在手册里, 下面我列举一些.
1. _after_find 和 _after_select:查询成功的回调方法
用法:
在自定义的model中重写
class ArticleModel extends Model {
protected function _after_find(&$data, $option) {
switch ($data['status']) {
case -2:
$data['status_text'] = '待审核';
break;
case -1:
$data['status_text'] = '已删除';
break;
case 0:
$data['status_text'] = '禁用';
break;
case 1:
$data['status_text'] = '正常';
break;
}
}
protected function _after_select(&$resultSet,$options) {
foreach ($resultSet as &$data) {
$this->_after_find($data, $options);
}
}
}这样在使用的时候, 你用
$list = D('Article')->select();
或
$info = D('Article')->find($id);
就会自动根据status字段添加status_text字段
还有一下方法, 大家可以自己测试
2. _after_delete , _before_delete
: 在删除操作之后 或 之前, 根据数据做一些操作 (如: 删除分类的时候 同时删除分类下的文章)
3. _after_insert , _before_insert
: 在插入之后 或 之前, 根据数据做一些操作 (如: 插入文章成功 自动让分类统计+1)
4. _after_update , _before_update
: 在更新之后 或 之前, 根据数据做一些操作 (如: 重新计算分类文章总数)
评论(4)
deeka:挺不错的,知道从源码里去发现隐藏的功能
2014-09-20
tyonly:你第一幅图是用什么软件生成的?
2014-09-19
项公:Netbeans IDE
2014-09-24
2014-09-19
yangweijie:前置后置 以前手册讲过了吧
2014-09-17
zhaishuaigan:哦, TP3.1中写了, 3.2中没有写
2014-09-19