用户模型中的Laravel多对一关系

时间:2019-03-11 02:23:18

标签: php database laravel model

im试图与表格用户,学生和老师建立一对一的关系。问题是,当我运行LARAVEL TINKER时,app \ user :: find('a123')-> teacher会显示b345数据,而不显示NULL。 Laravel的新功能。谢谢

下面是带有其PK的表。

用户表

user_id | type
a123    |  1
b345    |  2

学生桌

student_id| name
a123      |  Danny

教师表

teacher_id| name
b345      |  Mr.Mark

下面是模型。

用户模型

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

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

    return $this->hasOne(teacher::class,'teacher_id');
}

学生模型(教师模型与教师ID相同,与PK相同)

protected $primaryKey = 'student_id';


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

1 个答案:

答案 0 :(得分:0)

根据您的描述,学生应该属于用户,也应该教学

在用户模型中

seq 1 3 | xargs mkdir

在学生模型中


public function student(){

    return $this->hasMany(Student::class,'student_id');
}