首页 > 解决方案 > 数据值检索与数据库中的不同 - Laravel

问题描述

我创建了 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 = Lecture_id)

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

家庭控制器

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

标签: phpmysqllaravelmodel

解决方案


检查这个。只是假设

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
}

检查一次模型类名称。


推荐阅读