将 URI 添加到 laravel 响应

adding URI to laravel response

我正在构建一个 API 并且我有几个模型彼此有关系:

Asset
Location
User

我可以通过 api 访问 /asset/5/location/15

获取对象

一切都很好,现在我已经开始包括一些与它的关系.. 所以如果 asset 5location 15 相关.. return 来自 /asset/5 现在包含(使用 WITH)位置信息。

示例:

/asset/5
{
    "id": 5,
--> "uri": http: //localhost/api/asset/5, <-- how do i generate/append this
     "name": null,
    "location": {
        "id": 15,
        "name": "jimUser",
-->     "uri": "http://localhost/api/location/5"  <-- how do i generate/append this
    }
}

(URI 不是我的架构的一部分。我想将它添加到响应中。)

所有位置信息现在都已与资产一起 return。正是我在寻找什么..

我想做的是找到一种方法,用直接指向该实体的 link 填充这些 URI 字段。因此,在包含相关位置信息的 /asset/ return 上,我希望能够提供直接指向该位置的 link。

我无法找到为主要响应(在本例中为资产)或关系(在本例中为位置)生成 URI 的方法

我是 Laravel 的新手,我正在尝试基本上镜像具有相同类型响应的应用程序。

感谢任何帮助。

谢谢

我尝试与 $request$router 和许多其他人一起工作。

自动为 JSON 响应创建一个 accessor for your uri attribute and set it to be appended

// Location.php

class Location
{
  protected $appends = ['uri'];

  ...

  public function getUriAttribute()
  {
    return '/api/locations/' . $this->id;
  }
}