普通的访问使用可以参考手册,可是手册例子比较简单,更复杂的环境就不知道如何使用:
比如:UserModel 没有 status_text 字段。但是需要根据其他条件计算后,获得 status_text 值,并且输出。常规的方法是取出值后,自己在额外判断,如果碰到循环更麻烦 。
结合访问器和Model 内置的 getAttribute() 或 getOriginal() 即可在对应的 UserModel 文件里面实现,方便维护。
getAttribute('status'); if($status == 4){ return '不可用'; } $expiry_time = $this->getOriginal('expiry_time'); if($expiry_time < time()){ return '已到期'; } return '正常'; } }
这样,外面直接使用 $model->status_text 即可获得中文值。