Модель пользователя Laravel с несколькими отношениями один к одному - PullRequest
0 голосов
/ 12 марта 2019

Я хочу, чтобы модель User имела отношение один к одному с моделью Student, а также с моделью Lecture.

Я вхожу в систему, используя таблицу user, и с этого момента она будет отображаться в таблице студента или lecture в зависимости от типа user.

Проблема в том, что когда я запускаю app\user::find('a123')->lecture, он вернет данные b345(Mr Steven).

И когда я запускаю app\user::find('b345')->student, он возвращает данные a123(david).

Оба результата должны дать NULL, поскольку он не соответствует id. Новое в Laravel, спасибо.

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

id         |  password  |   type  
a123       |   1234     |   student
b345       |   1234     |   lecture

Лекционный стол

lecture_id |   id   |  name
b345       |   b345 |  Mr Steve

Стол ученический

student_id |   id   | name
a123       |   a123 | david

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

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

Модель лекции

protected $primaryKey = 'lecture_id';
public function User()
{
    return $this->belongsTo(User::class,'id');
}

Модель студента

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