# 7. User model 的 getter 方法
本篇所讲的知识的官方文档在于 [eloquent-mutators](https://laravel.com/docs/5.4/eloquent-mutators)。
这一篇内容要讲的跟上一篇 [Ruby 程序员学习 laravel 框架笔记 (6)-修改 User model](https://www.rails365.net/articles/ruby-cheng-xu-yuan-xue-xi-laravel-kuang-jia-bi-ji-6-xiu-gai-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);
}
}
?>
```
效果如下:
![](https://box.kancloud.cn/4b7a8230664926cb0528fe66e30717dd_2212x548.png)
完结。
下一篇:[Ruby 程序员学习 laravel 框架笔记 (8)-view 的更多知识](https://www.rails365.net/articles/ruby-cheng-xu-yuan-xue-xi-laravel-kuang-jia-bi-ji-8-view-geng-duo-zhi-shi)
- 0. 介绍
- 1. php 开发环境安装
- 2. 跑 laravel 的 hello world
- 3. 第一个路由 UsersController
- 4. 在数据库中创建一条数据
- 5. 简单的用户认证
- 6. 修改 User model
- 7. User model 的 getter 方法
- 8. view 的更多知识
- 9. 在 view 中共享变量
- 10. blade layout
- 11. 使用 @include 来整理 view
- 12. Blade if/else/unless/or
- 13. factories, faker and seeding
- 14. Blade foreach
- 15. 分页
- 16. 用中间件来限制用户必须登录
- 17. Route group
- 18. CURD 实践之改变用户表结构
- 19. CURD 实践之为新添加的属性修改注册功能
- 20. CURD 实践之用 username 来代替 email 登录
- 21. CURD 个人中心页面
- VIM 的 laravel 插件
- VIM 中有效地查看 php 源码