我有三个模特班,学生和学生信息。班级和学生处于一对多的关系中,Sudents和studentinfo处于一对一的关系中。
让某些班级的学生获得数组中的数据列表。
从阵列中为每个学生从studentinfo获取数据的最佳方法是什么?
我试图以json格式获取此数据。
答案 0 :(得分:1)
您可以在模型上设置如下关系,重要的是hasManythrough
关系:
// Class.php
public function students() {
return $this->hasMany(Student::class);
}
public function studentInfo()
{
return $this->hasManyThrough(StudentInfo::class, Student::class);
}
// Student.php
public function studentInfo() {
return $this->hasOne(StudentInfo::class);
}
public function classes() {
return $this->belongsToMany(Class::class);
}
// StudentInfo.php
public function student() {
return $this->belongsTo(Student::class);
}
...您可以将模型或集合强制转换为字符串 将自动调用模型或集合上的toJson方法:
$json = (string)$class->studentInfo;