【问题标题】:Laravel: show data in laravel with two tableLaravel:用两个表在 laravel 中显示数据
【发布时间】:2021-09-08 10:05:18
【问题描述】:
我想在 laravel 中显示数据。
这是教室表:
这是学生表:
这是教室学生表:
我希望得到这样的结果:
class来自教室表,year来自学生表(创建学生的年份),data来自学生表(每个月的数据,样本数据:[2,4,6] 表示 1 月 2 日,2 月 4 日,3 月 6 日)。我不知道怎么做。你能帮助我吗?谢谢
【问题讨论】:
标签:
laravel
eloquent
laravel-8
laravel-query-builder
【解决方案1】:
您需要为两个模型(课堂模型和学生模型)设置多对多关系。它看起来像这样:
class Classroom extends Model {
public function students(){
return $this->hasMany(Student:class, 'student_id');
}
}
class Student extends Model {
public function classrooms(){
return $this->hasMany(Classroom:class, 'classroom_id');
}
}
这里还参考了 laravel 文档的确切解决方案:
https://laravel.com/docs/8.x/eloquent-relationships#many-to-many
【解决方案2】:
您应该在两个模型中使用 HasMany Relation,并在获取数据时调用此关系函数以获取与其他模型相关的数据并在 Transformer 中为这些数据设置预期的标题。