Laravel 8 定义一个修改器

2021-07-19 11:44 更新

若要定义一个修改器,则需在模型上面定义 setFooAttribute 方法。要访问的 Foo 字段使用「驼峰式」命名。让我们再来定义一个 first_name 属性的修改器。当我们尝试使用 first_name 属性值时,该修改器将被自动调用:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * 设置用户名
     *
     * @param  string  $value
     * @return void
     */
    public function setFirstNameAttribute($value)
    {
        $this->attributes['first_name'] = strtolower($value);
    }
} 

修改器会获取属性已经被设置的值,允许你修改并且将其值设置到 Eloquent 模型内部的 $attributes 属性上。举个例子,如果我们尝试将 first_name 属性的值设置为 Sally

$user = App\Models\User::find(1);

$user->first_name = 'Sally'; 

在本例中, setFirstNameAttribute 方法在调用的时候赋予 Sally 这个值作为参数。然后修改器会使用 strtolower 函数处理并将结果设置到内部的 $attributes 数组。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号