本篇所讲的知识的官方文档在于 eloquent-mutators。
这一篇内容要讲的跟上一篇 Ruby 程序员学习 laravel 框架笔记 (6)-修改 User model 密切相关。
上一篇我们使用了类似于 User model 的 setter 方法,代码如下:
// app/User.php
<?php
...
class User extends Authenticatable
{
use Notifiable;
...
// setNameAttribute 方法是新增的
public function setNameAttribute($value)
{
$this->attributes['name'] = ucfirst($value);
}
}
?>
setNameAttribute
就相当于一个 setter 方法,主要是对属性或数据进行修改。比如上篇文章所讲的把即将要存进数据库的用户名的首字母变成大写,例如,hfpp2012
变成了 Hfpp2012
。
而这篇要讲的是 getter 方法,就是对数据如何读取进行修饰。比如把读出来的用户名,所有字母变成大写,而数据库的内容保持不变,例如,
Hfpp2012
会变成 HFPP2012
。
这节的内容比较简单,主要就是讲一个 getter 方法,代码如下:
// app/User.php
<?php
...
class User extends Authenticatable
{
use Notifiable;
...
public function setNameAttribute($value)
{
$this->attributes['name'] = ucfirst($value);
}
// getter方法
public function getNameAttribute($value)
{
return strtoupper($value);
}
}
?>
效果如下:
完结。