Я хочу, чтобы модель 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');
}