版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lihaoen666/article/details/84386925
获取器
获取器可以对模型实例的(原始)数据做出自动处理。
一个获取器对应模型的一个特殊方法(该方法必须为public类型),规范为:getFieldNameAttr
。
甚至,它还可以用来定义数据表不存在的字段。
举个例子
数据表里有一个url
字段,当我使用获取器定义了一个getUrlAttr()
的public方法。
取出来的url字段,就会先经过getUrlAttr()
这个获取器的处理,才会返回给模型对象。
触发条件
-
模型的数据对象取值操作($model->field_name);
-
模型的序列化输出操作($model->toArray()及toJson());
-
显式调用getAttr方法($this->getAttr(‘field_name’));
示例
模型类文件:
class Product extends Model
{
// url字段获取器
public function getUrlAttr($value,$table){
// 1.最终返回url
$finalUrl = config('img.prefix').$value;
// 2. 返回
return $finalUrl;
}
}
控制器文件:
$product = Product::get(1);
echo $product->url; // 经过处理的url字段