数据值检索与数据库中的数据不同-Laravel

时间:2019-03-12 06:38:09

标签: php mysql laravel model

我已经创建了3张桌子。用户,学生和讲座。根据用户表上的类型,用户可以是学生或讲座。学生类型=“ std”,而演讲类型=“ lct”。问题是,当我作为演讲者登录时,类型值将始终为“ std”,即使在数据库中为“ lct”。 Laravel的新功能。谢谢

用户表

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 =演讲者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 :(得分:0)

检查此。只是假设

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
}

一次检查您的模型类名称。