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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lihaoen666/article/details/84386925

获取器

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

一个获取器对应模型的一个特殊方法(该方法必须为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字段

猜你喜欢

转载自blog.csdn.net/lihaoen666/article/details/84386925
今日推荐