Thinkphp5基础——05 模型(获取器)

本文介绍了ThinkPHP5框架中模型获取器的概念和用法,包括其作为数据处理手段的作用,如何定义获取器方法,以及何时会被触发,如在模型实例取值、序列化输出和显式调用getAttr时。

获取器

获取器可以对模型实例的(原始)数据做出自动处理。

一个获取器对应模型的一个特殊方法(该方法必须为public类型),规范为:getFieldNameAttr

甚至,它还可以用来定义数据表不存在的字段。


举个例子

数据表里有一个url字段,当我使用获取器定义了一个getUrlAttr()的public方法。

取出来的url字段,就会先经过getUrlAttr()这个获取器的处理,才会返回给模型对象。


触发条件
  1. 模型的数据对象取值操作($model->field_name);

  2. 模型的序列化输出操作($model->toArray()及toJson());

  3. 显式调用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字段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值