使用thinkPHP开发了很久,才逐步回来仔细审视官方搞的说明文档,其实有点不行哇,但是只要有心,反过来看也没有什么不好的。
与此同时,我也终于直到为什么官方的文档写的是这个结构了,如果不是特别有耐心的同学,估计就此失去了信心。如果和我说的一样,那么你可能需要去找一些高手录制的教程来辅助你的学习,并第一时间应用到你的项目中去。只有这样,你才有可能回来重读官方文档,至少我是这么干的,但不代表所有人哦。
本文介绍读取器,官方如此介绍
获取器的作用是在获取数据的字段值后自动进行处理,例如,我们需要对状态值进行转换,可以使用:
class User extends Model
{
public function getStatusAttr($value)
{
$status = [-1=>'删除',0=>'禁用',1=>'正常',2=>'待审核'];
return $status[$value];
}
}
上面是官方手册给的实例,那么在世纪开发中,能快速帮我们解决一些什么问题呢?
1、就是转换数据,如根据分类的ID返回他的分类名,这在开发中经常遇到是吧!
2、给定一个配置,然后拼接返回一个正确直观的数据
下面来一个例子,这个例子是来自于七月
的讲座:
public function getUrlAttr($value,$data){
$finaUrl=$value;
if($data['from] == 1){
$finaUrl=config('setting.img_prefix').$value;
}
return $finalUrl;
}
本例中,getUrlAttr接收两个参数,第一个自然是你的字段值,第二个是一个数组,他包含你已经找到的单条数据的数组。
config来自于thinkPHP的extra,关于extra我专门记录一篇笔记,等我把这个知识点记忆牢固了然后再写一篇来加强一下,这里按下不表。
他这个读取器和AOP切面思维是有很强的相关性的,读取器是AOP的一个表达方式。你觉得呢?
参考文献