Получение значений данных не такое, как в базе данных - Laravel - PullRequest
0 голосов
/ 12 марта 2019

Я создал 3 таблицы. Пользователь, студент и лекция. Пользователь может быть студентом или лекцией в зависимости от типа таблицы пользователя. Тип студента = "std", а тип лекции = "lct". Проблема в том, что когда я вхожу в лекцию, значение типа всегда будет «std», хотя в базе данных это «lct». Новое в Ларавеле. Спасибо

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

user_id    |  password  |   type  
a123       |   1234     |   std     
b345       |   1234     |   lct    

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

student_id |   name
a123       |   david

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

lecture_id |   name
b345       |   Mr Steve

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

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

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

    return $this->hasOne(lecture::class,'lecture_id');
}

Модель студента (модель лекции также есть, но с PK = lecture_id)

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

HomeController

public function index()
{   
    $type = Auth::user()->type;
    dd($type);
}

1 Ответ

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

Проверьте это. Просто предполагая,

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

    return $this->hasOne(Student::class,'student_id'); // It should be Student not student I guess (Capital S)
}
public function lecture(){

    return $this->hasOne(Lecture::class,'lecture_id'); // Lecture not lecture
}

Проверьте название класса вашей модели один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...