看了下這章內(nèi)容,感覺寫個(gè)實(shí)例更讓人容易理解
定義一個(gè)訪問(wèn)器 getFooAttribute
假設(shè)我們的
User.php模型里面對(duì)應(yīng)的表是users表,里面有name字段。
我們要實(shí)現(xiàn)每次直接訪問(wèn)name屬性時(shí),可以將名字的首字母轉(zhuǎn)換成大寫
語(yǔ)法就是在User.php里面添加一個(gè) “get屬性Attribute” 函數(shù)
<?php
namespace App;
class User extends Authenticatable
{
public function getNameAttribute($value) // 如果是age,則 getAgeAttribute
{
return ucfirst($value);
}
}
我們?cè)诳刂破骼锩孢\(yùn)行
$user = User::find(1);
return $user->name;
則可以看到id=1的用戶信息里面,用戶名的首字母轉(zhuǎn)換成了大寫 Lisi
定義一個(gè)修改器setFooAttribute
原理跟訪問(wèn)器是一樣的.比如,我們用戶
id=1的信息里面,name=lisi。我們要把姓名改成張三
語(yǔ)法就是在User.php里面添加一個(gè) “set屬性Attribute” 函數(shù)
<?php
namespace App;
class User extends Authenticatable
{
public function setNameAttribute($value)
{
$this->attributes['name'] = ucfirst($value);
}
}
在控制器里面
$user = User::find(1);
$user->name = 'zhangsan';
dd($user); 打印結(jié)果如下

修改器,lisi改成zhangsan