# 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);
}
}
?>
```
效果如下:

完結。
下一篇:[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 源碼