laravel - Eloquent:基于一对多关系查找表的所有记录
问题描述
我有两张桌子grades
,students
每个年级都属于一个学生。我想根据一些具有共同属性的学生(不是学生)来查找所有成绩,例如,学生是男孩。
class Student extends Model
{
public function grades()
{
return $this->hasMany('App\Grade');
}
}
和
class Grade extends Model
{
public function student()
{
return $this->belongsTo('App\Student');
}
}
所以,我尝试了这段代码,但它是错误的,因为如果我们有一个学生,而不是一些学生,它就可以工作:
$grades = Student::where('sex','male')->grades->latest('created_at')->paginate(20);
我正在寻找解决方案!
解决方案
是的,关系方法可以被一个雄辩的人调用。
所以你只想得到男学生的成绩记录,你可以把他们从Grade中拿出来。
$grades = Grade::whereHas('student', function($q) {
return $q->where('sex', 'male');
})->latest('created_at')->paginate(20);
推荐阅读
- python - 如何创建具有三位数字的列表,其中第一位数字+第二位数字=第三位数字
- python - Python子进程以异步方式Popen
- javascript - 尽管值已定义,Node.js 函数仍返回未定义
- python - 如何从python列表中的最小值开始?
- sql - 使用 SELECT 将数据插入按表 PL/SQL 的索引
- xslt - 你可以在 XSLT 中替换一个 unicode 字符吗?
- java - 如何使用按钮更改 Textview 的值以遍历 ArrayList?
- python - Microsoft Graph - Create Teams API 返回“包含导航属性不支持的绑定请求”。
- jquery - JQuery:收到此错误未捕获的类型错误:无法读取未定义的属性“scrollHeight”
- matlab - Matlab数字滞后