需要将计算(computed)属性添加到模型中:

class Field extends Model {
//...
    protected $appends = ['typename'];
//...
    public function getTypenameAttribute(): string {
        return $this->type->name;
    }
}

模型转储显示了以下内容:

{
    "id": "9bc5b05b-46cf-470d-a848-cdb60aec2213",
    "name": "Показание термометра",
    "default": true,
    "twin_id": "9bc5b05b-3df3-4efd-8ce0-7a30be87af72",
    "type_id": "9bc3cea3-47e6-4ef2-a78f-347d51abbe3d",
    "created_at": "2024-04-10T07:21:36.000000Z",
    "updated_at": "2024-04-10T07:21:36.000000Z",
    "deleted_at": null,
    "origin": "thermo",
    "typename": "Целочисленное без знака",
    "type": {
      "id": "9bc3cea3-47e6-4ef2-a78f-347d51abbe3d",
      "name": "Целочисленное без знака",
      "influx_type": "uint",
      "created_at": "2024-04-09T08:54:37.000000Z",
      "updated_at": "2024-04-09T08:54:37.000000Z",
      "deleted_at": null
    }
  }

typename计算好 但我不想包含嵌套的type对象.我的模型类不包含任何$with,所以这个对象完全出乎意料.

如何从转储中排除这个嵌套对象?

推荐答案

请确保你的模型关系看起来像这样

class Field extends Model {
// List of attributes to append to JSON serialization
protected $appends = ['typename'];

// List of attributes or relations to hide from JSON serialization
protected $hidden = ['type'];

// Getter for the appended attribute
public function getTypenameAttribute(): string {
    return $this->type->name;
}


public function type() {
    return $this->belongsTo(Type::class, 'type_id');
}

}

使用

$field = Field::find(1); //replace your id

Laravel相关问答推荐

如何计算具有特定 ID Laravel 的行

spatie 包 laravel-tags 在迁移中没有 down() 函数是有原因的吗

如何在 Laravel 中将 Select 选项表单插入数据库

如何自定义密码确认不匹配.错误信息?

找不到 Laravel 5 类日志(log)

Laravel 5.1 - 如何在进度条上设置消息

Laravel Electron邮件验证模板位置

SQLSTATE [42000]:语法错误或访问冲突:1066 Not unique table/alias on relationship

如何在 AWS Elastic Beanstalk 上设置和使用 Laravel 调度?

Web 服务器如何处理请求?

干预图像:直接从带有原始文件名和分机的网址保存图像?

在 laravel 6.0 中未定义命令ui

从 Artisan 电话中获得响应

Laravel 项目旁边的 Wordpress 项目(在 public_html 文件夹中)

Laravel5如何将数组传递给查看

我在哪里放置可以显示 Flash 消息的 Laravel 4 辅助函数?

在 vue.js 中使用 Laravel 的Gate/Authorization

Laravel 分页漂亮的 URL

基于日期的 Laravel 日志(log)文件

如何从 laravel 5.1 中数据库表的 created_at 属性中 Select 年份和月份?