[Laravel] Accessors & Mutators

前言

当我们想在资料存进资料库前的最后一刻,或是取出资料库后的第一时间对资料做处理,可以在 Model 里写 Mutator 和 Accessor。 官网举一个加密解密的例子,蛮好理解他的作用的。
今天用一个大家都有的 User Model 做练习,将 name 全部转为小写后存进资料库,取出时,全部转成大写。很明显的,这个练习本身没什么意义XDD。开始 trytry 吧!

用法

User Model

加入下面两个 function:

public function setNameAttribute($value) // Mutator 存进资料库前作用{    $this->attributes['name'] = strtolower($value);}
public function getNameAttribute($value) // Accessor 从资料库取出后作用{    return $this->attributes['name'] = strtoupper($value);}

注意:function 的名称是依照栏位名称来命名,如 set+栏位名称(upper camel大写驼峰)+Attribute。 如果 栏位名称是 user_name 那 function 名称就要改成 setUserNameAttribute。

测试

新增一笔 user 资料
name:ABCHAHA
password:sasawee查看资料库,确实转为小写
资料库截图捞出 user
不论name输入的大小写为何,在进到资料库比对前都会转成小写,所以没关係。用 name 和 password 捞出 user后,将 name 转成大写再 return 出来。
postman

感谢 Ray 大!


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章