Laravel模型访问器 & 修改器

Posted willem_chen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel模型访问器 & 修改器相关的知识,希望对你有一定的参考价值。

访问器

model

/**
 * 定义一个访问器 当 Eloquent 尝试获取 title 的值时,将会自动调用此访问器(查詢時自動調用)
 * @author jackie <2019.02.18>
 */
public function getTitleAttribute($value)
{
    return strtoupper($value);
}

controller

public function index(Request $request)
{
    $data = \\App\\Models\\BusinessProduct::Enable(1)->get();

    $res = $data->filter(function ($query){
        return $query->is_redeem == 1;
    })->map(function ($query){
        return $query->title;
    });

    dd($res->all());
}

效果

打印結果英文全部转大写
在这里插入图片描述

修改器

model

/**
 * 定义一个修改器 当我们尝试在模型上设置 title 的值时,该修改器将被自动调用 (插入數據時自動調用)
 * @author jackie <2019.01.18>
 */
public function setTitleAttribute($value)
{
    $this->attributes['title'] = ucfirst($value);
}

controller

public function add(Request $request)
{
    $model = new BusinessProduct();
    $model->title = $request->input('title');
    $model->save();
}

效果

访问:url:http://127.0.0.1:8000/admin/productadd?title=fgfg

查看数据库新插入一数据title字段首字母转大写

在这里插入图片描述

以上是关于Laravel模型访问器 & 修改器的主要内容,如果未能解决你的问题,请参考以下文章

二十一PHP框架Laravel学习笔记——模型的访问器和修改器

在 Laravel json 响应中使用访问器和修改器

Laravel 模型访问器从缓存中获取 - 性能增强

laravel安装完成后,访问public目录,显示一片空白怎么回事

从模型的访问器抛出自定义Laravel异常时未调用方法render()

Laravel 访问器两次向 json 对象提供信息