读取器

在读取数据库图片路径时,因为数据库存的是相对路径,在读取出来后我们要转化为http开头的绝对路径,这个时候我们用TP5的读取器,使用方法如下:

示例:

public  function getUrlAttr($value){

      Return  config(‘setting.img_prefix’).$value;

}   

可见读取器就是一个方法,方法名先是固定写法get加上要读取的字段名,注意要大写,后面加上固定写法Attr,这样,在读取数据表中url字段是会自动到读取器中来进行处理。

如果在该读取器中要用到其他字段的值咋办呢,那么读取器还有第二个参数,示例:

public  function getUrlAttr($value,$data){

      Return  config(‘setting.img_prefix’).$value;

}

第二个参数的$data是包含了所有字段值的数组。

 

当其他模型中也有url字段需要读取器时,我们没必要在每个模型中都写个读取器,我们把这个读取器写到公共模型中去,所谓公共模型就是定义一个基类模型BaseModel继承Model,然后其他模型只要继承BaseModel就行了。

这样能虽然解决了这个问题,但不是特别灵活,因为可能并不是所有的url都需要这个读取器,那么最好的办法:在BaseModel中把读取器改成方法,然后在其他模型中需要url转换的在读取器中调用这个方法。

你可能感兴趣的:(thinkphp5)