发布于 2015-01-25 03:46:13 | 2594 次阅读 | 评论: 0 | 来源: PHPERZ
Yii高性能PHP框架
Yii Framework是一个基于组件、用于开发大型 Web 应用的高性能 PHP 框架。Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。Yii是最有效率的PHP框架之一。Yii是创始人薛强的心血结晶,于2008年1月1日开始开发。
本文为大家讲解的是yii ar类中的afterFind占位方法的使用方法,并列举了二个应用场景供大家参考,感兴趣的同学看一下。
beforeValidate|CModel::beforeValidate] 和 [afterValidate|CModel::afterValidate]: 这两个将在验证执行之前和之后被调用。
[beforeSave|CActiveRecord::beforeSave] 和 [afterSave|CActiveRecord::afterSave]: 这两个将在保存 AR 实例之前和之后被调用。
[beforeDelete|CActiveRecord::beforeDelete] 和 [afterDelete|CActiveRecord::afterDelete]: 这两个将在一个 AR 实例被删除之前和之后被调用。
[afterConstruct|CActiveRecord::afterConstruct]: 这个将在每个使用 new 操作符创建 AR 实例后被调用。
[beforeFind|CActiveRecord::beforeFind]: 这个将在一个 AR 查找器被用于执行查询(例如 find(), findAll())之前被调用。 1.0.9 版本开始可用。
[afterFind|CActiveRecord::afterFind]: 这个将在每个 AR 实例作为一个查询结果创建时被调用。
本文为大家讲解的是afterFind这个占位方法。
afterFind 通俗点讲就点类似事件的意思,他的功能是在将在每个 AR 实例作为一个查询结果创建时被调用。
1,用户表中有二个字段first_name和last_name,我不想在前端调用时每次都调用二个字段来组成完整的名子,我只想调用full_name来快捷的调用
2,一个文章表(表中没有url这个字段),我想每次调用时就自动有url这属性来做为文章的url
我们以上面提到的第二个应用场景为例,在文章表模型(article)中增加如下代码
//增加url属性
public $url;
protected function afterFind()
{
$id = $this->id;
$dir = date("ymd",$this->time);
$this->url = "/a/$dir/$id.html";
}
他的功能是每次通过Article::model()->findAll()时返回的数组中自动把url字段附加上去。
调用时直接同普通字段一样$arr->url即可。