关于Model自定义字段

1). 当前使用的 Laravel 版本?

Laravel 9

2). 当前使用的 php/php-fpm 版本?

PHP 版本:

php 8.1

2. 问题描述?

如何在Model查询结果中添加自定义字段?

* @property int $id 编号
* @property string $name 名称
class User extend Model{
    public function testField(): Attribute
    {
        return Attribute::make(
            get: function ($value, $attributes) {
                return 'test';
            }
        );
    }
}

通过如上代码添加自定义字段
查询时:

$user = User::first();
dump($user->test_field); // test 能访问到
dump(json_encode($user))
/**
 *{'id':'xx','name':'xx',}
 * 无法访问到testField ,怎么才能让查询结果中自动添加?
 */

如上代码所示,怎样让自定义字段自动添加到查询结果中?
吐槽下laravel的文档,感觉很多东西都没写到。。。

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

加到append属性里面,怎么没写是你没仔细看吧。文档写的挺好

1年前 评论
____Laravel (楼主) 1年前
讨论数量: 8

加到append属性里面,怎么没写是你没仔细看吧。文档写的挺好

1年前 评论
____Laravel (楼主) 1年前

汗,在系列化一节里面。。。我在“属性修改器”里面翻来覆去的找 :sob: 有些函数真的找不到,比如:route()->getPrefix(),这个在文档里完全查不到。。。

1年前 评论
____Laravel (作者) (楼主) 1年前

顺便咨询下,假如我有

$param = $request->only(['a' , 'b' , 'c',...]);
$user->a = $param['a'] ;
$user->b = $param['b'] ;
$user->c = $param['c'] ;
...
$user->save();

在不想用update方法时,有没有什么更简洁的写法。

1年前 评论
____Laravel (作者) (楼主) 1年前
RayFong_Chan 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!