读取器:
是Model层里面设置的方法,当其他层调用某个方法
比如:User::get(1)->work,会自动识别User类中的getWorkAttr()方法
当你自定义的时候,则调用自定义的方法,而没有自定义时,则自动调用model的方法
读取器方法命名规范为:
get+属性名的驼峰式命名+Attr
程序在读取属性时自动根据规则检测是否有这个属性对应的方法
比如:
$user = User::get(1);
echo $user->nickname;//自动检测getNicknameAttr
echo $user->email;//自动检测getEmailAttr
echo $user->reg_time//自动检测getRegTimeAttr
在model下的User类,举例
protected function getRegTimeAttr($regitime)
{
returm ‘===’.date(‘y-m-d’,$regitime);
}
函数$regitime为数据库当中的时间戳
protected function getEmailAttr($a,$data)
{
return $data[‘passwords’];//第二个参数$data 为整个数据的对象
}
修改器/或叫写入器:
把上述的get改为set即可完成一个修改器命令
protected function setRegTimeAttr($value)
{
return strtotime($value);
}
//这样当使用写入器的时候,比如在Index类中调用
$user->reg_time = ‘2018-10-1’;
使用这种方法会自动的将上述时间修改为时间戳。