【问题标题】:How to represent two models relation with 2 different association in laravel如何在laravel中用2个不同的关联表示两个模型关系
【发布时间】:2021-06-29 05:45:09
【问题描述】:

我有两个模型,用户和主题。 有两种类型的用户

  1. 老师
  2. 学生

在用户模型中,用户类型由属性角色区分。

所以这里的问题,我有两个模型之间的两个关系, 第一个关系是“教师可以创建许多科目,科目属于一位教师” 另一个关系是“学生可以注册很多科目,科目可以被很多学生注册”。

如何在 Laravel 中表示这种设计的模型、迁移、工厂?

【问题讨论】:

  • 用户和主题之间的多对多关系应该做到。应该在您的应用中处理教师拥有的科目还是学生注册的科目

标签: php laravel


【解决方案1】:

两个模型-->用户和科目,用户->老师,学生

php artisan make:model Teacher
php artisan make:model Student
php artisan make:model Subject

然后创建三个模型,在教师模型中

public function subject()
{
  return $this->belongsTo("App\http\controllers\Subject",id);
}

其中 id 是教师卷 id,然后是 In Subject 模型

public function teacher()
{
  return $this->hasMany("App\http\Controllers\Teacher");
}

学生可以注册多个科目,科目可以被多个学生注册

在学生模型中

public function subject()
{
  return $this->hasMany("App\Http\Controllers\Subject");
}

这里的hasMany是指它可以获取某个学生的所有注册书籍。

在主题模型中

public function student()
{
  return $this->belongsTo("App\Https\Controllers\Student");
}

在控制器中

public function teacher($id)
{
  $teacher=Teacher::with('subject')->where('id',$id)->get();
}

获取老师创建的所有科目

public function students()
{
  $students=Student::with("subject")->with("id",Auth::user()->id)->get();
}

它可以获取所有学生注册的书籍

【讨论】:

    猜你喜欢
    • 2018-12-11
    • 1970-01-01
    • 2018-07-09
    • 2018-12-29
    • 2019-10-19
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 2015-12-24
    相关资源
    最近更新 更多