我有两个模型和一对一关系如下:
class Property extends Model
{
public function user()
{
return $this->belongsTo(User::class, 'user_id');
}
}
class User extends Authenticatable
{
public function property()
{
return $this->hasOne(Property::class, 'user_id');
}
}
如果我想从属性访问用户,我的用户数组的返回值为两次:
$property = Property::where('id', $id)->first();
return response()->json([
'property' => $property,
'user' => $property->user
], 201);
输出:
{
"property":{
"id":1,
"name":"test",
"user":{
"id":1,
"name":"arash"
}
},
"user":{
"id":1,
"name":"arash"
}
}
这里有什么?为什么属性中有第一个用户?
答案 0 :(得分:1)
这是Laravel中序列化的工作原理 你可以在json中隐藏它
class Property extends Model
{
protected $hidden = ['user'];
public function user()
{
return $this->belongsTo(User::class, 'user_id');
}
}