Laravel Multiple One-to-One Relationship в пользовательской модели - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь создать отношения один на один с пользователем, учеником и учителем.Проблема в том, что когда я запускаю LARAVEL TINKER, app \ user :: find ('a123') -> teacher, он отображает данные b345 и не отображает NULL.Новое в Ларавеле.Спасибо

Ниже приведена таблица с их PK.

Таблица пользователей

user_id | type
a123    |  1
b345    |  2

Таблица учеников

student_id| name
a123      |  Danny

Учительский стол

teacher_id| name
b345      |  Mr.Mark

, и это НИЖЕ - модели.

Модель пользователя

protected $primaryKey = 'user_id';
public function student(){

    return $this->hasOne(student::class,'student_id');
}
public function teacher(){

    return $this->hasOne(teacher::class,'teacher_id');
}

Модель ученика (модель учителя точно такая же, как для teacher_id, как у PK)

protected $primaryKey = 'student_id';


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

1 Ответ

0 голосов
/ 11 марта 2019

По вашему описанию, студент должен принадлежать пользователю, также преподавать

В модели пользователя


public function student(){

    return $this->hasMany(Student::class,'student_id');
}

В модели студента


public function user(){

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