如何在嵌套关系之间获取基于条件的数据有很多



注册模型:

public function schedule_weeks() {
return $this->hasMany( Enrollment_weeks::class, 'enrollment_id', 'id' )->where( 'enrollment_weeks.status', 'ACTIVE' );
}

Enrollment_weeks型号:

public function week_classes() {
return $this->hasOne( Enrollment_week_classes::class, 'enrollment_week_id', 'id' );
}

如果我在没有where条件的情况下给出,我得到了正确的嵌套数据

$enrol_info = Enrollments::with( [ 'student_info', 'schedule_weeks.week_classes'  ] )->find( $id );

如果我给出我得到错误的条件

$enrol_info  = Enrollments::with( [ 'student_info', 'schedule_weeks.week_classes' => function( $query ) {
$query->where( 'enrollment_weeks.order', '>=', '1' );
$query->where( 'enrollment_weeks.order', '<=', '3' );
}  ] )
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'enrollment_weeks.order' in 'where clause' (SQL: select * from `enrollment_week_classes` where `enrollment_week_classes`.`enrollment_week_id` in (52, 53, 54, 55, 56, 57, 58, 59, 60) and `enrollment_weeks`.`order` >= 1 and `enrollment_weeks`.`order` <= 3)

但如果我给这样的

$enrol_info  = Enrollments::with( [ 'student_info', 'schedule_weeks' => function( $query ) {
$query->where( 'enrollment_weeks.order', '>=', '1' );
$query->where( 'enrollment_weeks.order', '<=', '3' );
}  ] )

我得到的数据没有嵌套的周类数据

请帮助我获得条件的嵌套周课数据

$enrol_info = Enrollments::with([
'student_info',
'schedule_weeks' => function ($query) {
// add the nested relation here
$query->with('week_classes');
$query->where('enrollment_weeks.order', '>=', '1');
$query->where('enrollment_weeks.order', '<=', '3');
},
]);

这是一个确切的答案,可以帮助像我这样的人

最新更新