如何使用Laravel JSON API显示相关数据

时间:2018-03-20 12:10:01

标签: php json laravel api

我在Laravel中创建了一个API。我有一些关系表,我正在收到这样的JSON:

{
  content: "Lorem ipsum",
  created_at: "2018-03-13 16:51:21",
  deleted_at: null,
  group_id: 1,
  rating: 6,
  updated_at: "2018-03-13 16:51:21",
  user_id: 1
}

但是我想收到这样的话:

 {
      content: "Lorem ipsum",
      created_at: "2018-03-13 16:51:21",
      deleted_at: null,
      group_id: 1,
      rating: 6,
      updated_at: "2018-03-13 16:51:21",
      user: {
        name: "John",
        surname: "Doe",
        avatar: "file.jpg"
      }
}

最好的方法是什么?

3 个答案:

答案 0 :(得分:0)

您可以使用关系获取user数据。

https://laravel.com/docs/5.5/eloquent-relationships#defining-relationships

为此,您首先需要设置关系。例如,在模型中添加如下内容:

public function user() {
    $this->belongsTo(User::class);
}

现在,您可以使用此关系通过执行此类操作将用户作为查询的一部分

Model::with('user')->where('this', 'that')->first();

当您将此作为JSON响应返回时,user将根据您的需要提供。

您可能需要隐藏User中作为响应一部分发送的字段。您可以通过更改模型中的$visible

来完成此操作

答案 1 :(得分:0)

在模型中使用此功能,它将返回用户数据,但列名应为user_id。我希望你的问题能解决这个问题。

public function user() {
    return $this->belongsTo('App\User');
}

答案 2 :(得分:0)

navigator.geolocation