Нулевой объект в hasOne отношениях странное поведение - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь создать пользователя resource в Laravel, где у пользователя object есть вложенный логин object.

Мой пользователь class имеет эти attributes:

protected $fillable = [
    'name', 'nickname', 'dob',
];

public function login(){
    return $this->hasOne(Login::class, 'id');
}

Мой логин class похож на это:

protected $fillable = [
    'email', 'password',
];

protected $hidden = [
    'password',
];

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

Это мой индекс UserController method:

public function index()
{
    $usr= User::with('login')->get();

    return response()->json(['user' => $usr], 200);
}

С object, у которого есть Логин, он работает довольно хорошо, однако, с Пользователем, у которого нет Регистрации, он возвращает Пользователя, которому последний логин был вставлен в таблицу Регистрации.

Почему Laravel делает это?

1 Ответ

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

Вы должны поменять отношения:

public function login(){
    return $this->belongsTo(Login::class, 'login');
}

public function user(){
    return $this->hasOne(User::class, 'login');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...