注册模型:
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');
},
]);
这是一个确切的答案,可以帮助像我这样的人