我在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"
}
}
最好的方法是什么?
答案 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