发布于 2015-01-25 03:46:13 | 2594 次阅读 | 评论: 0 | 来源: PHPERZ

这里有新鲜出炉的YII 2.0教程,程序狗速度看过来!

Yii高性能PHP框架

Yii Framework是一个基于组件、用于开发大型 Web 应用的高性能 PHP 框架。Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。Yii是最有效率的PHP框架之一。Yii是创始人薛强的心血结晶,于2008年1月1日开始开发。


本文为大家讲解的是yii ar类中的afterFind占位方法的使用方法,并列举了二个应用场景供大家参考,感兴趣的同学看一下。

CActiveRecord 提供了几个占位符方法,它们可以在子类中被覆盖以自定义其工作流:

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 实例作为一个查询结果创建时被调用。

最典型的应用场景就是对通过调用findAll方法取出来的数据进行二次加工,比如:

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即可。



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务