Laravel отношения возвращают родителя дважды - PullRequest
0 голосов
/ 26 мая 2018

У меня есть две модели и отношение «один к одному» следующим образом:

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"
    }
}

Что здесь происходит?Почему в собственности есть первый пользователь?

1 Ответ

0 голосов
/ 26 мая 2018

так работает сериализация в Laravel.
вы можете скрыть это в json

class Property extends Model
{
    protected $hidden = ['user'];

    public function user()
    {
        return $this->belongsTo(User::class, 'user_id');
    }
}
...