cakephp中使用连接和数组进行分页

cakephp中使用连接和数组进行分页,cakephp,pagination,Cakephp,Pagination,在cakephp中,我使用了一个“全部查找”来完成一个复杂的任务,如下所示。我的问题是,我正在尝试将其转换为一组分页结果,并且不断得到偏移警告非法偏移类型[CORE\Cake\Model\Model.php,第2936行。 我确信这个问题很简单,但是有没有一种方法可以通过我为搜索设置的$option数组来实现这一点。我在文档中没有看到一个为选项设置数组的分页结果示例 $this->Lesson->recursive=-1; $options['joins']=数组( 数组('table'=>'

在cakephp中,我使用了一个“全部查找”来完成一个复杂的任务,如下所示。我的问题是,我正在尝试将其转换为一组分页结果,并且不断得到偏移警告非法偏移类型[CORE\Cake\Model\Model.php,第2936行。 我确信这个问题很简单,但是有没有一种方法可以通过我为搜索设置的$option数组来实现这一点。我在文档中没有看到一个为选项设置数组的分页结果示例

$this->Lesson->recursive=-1;
$options['joins']=数组(
数组('table'=>'classes\u students',
“别名”=>“LessonsStudent”,
'类型'=>'左',
“条件”=>数组(
'Lesson.id=LessonsStudent.Lesson_id',
)
),
数组('表'=>'学生',
“别名”=>“学生”,
'类型'=>'左',
“条件”=>数组(
“LessonsStudent.student\u id=student.id”,
)
),
数组('表'=>'主题',
“别名”=>“主题”,
'类型'=>'左',
“条件”=>数组(
'Lesson.subject_id=subject.id',
)
),
排列(
“表”=>“导师”,
“别名”=>“导师”,
'类型'=>'左',
“条件”=>数组(
'Lesson.tutor_id=tutor.id'
)
)  ,
数组('table'=>'tutoring\u types',
“别名”=>“教程类型”,
'类型'=>'左',
“条件”=>数组(
'Lesson.tutoring\u type\u id=TutoringType.id',
)
)
);
$options['fields']=数组('Student.last\u name'、'Student.first\u name'、'Student.id',
“课程.课程日期”,“课程.开始时间”,“课程.结束时间”,“课程.id”,“课程.时间表记录”,“课程.时间表每月”,“课程.时间表每年”,
'课程.取消者','课程.化妆课程','课程.辅导类型'id','课程.前题',
“LessonsStudent.*”,
“导师.姓”,“导师.名”,“导师.id”,
'Subject.name'、'Subject.id',
“TutoringType.*”;
$options['conditions']=array('Lesson.Lesson\u inactive'=>0,'Lesson.Component\u Lesson'=>0,'Lesson.Foreit'=>0,

'Lesson.Lesson_date>='=>$startdate,'Lesson.Lesson_date如果将选项拆分为它们自己的变量,分页将起作用。

这是一个复杂的连接:)您有更简单的方法吗?分页有答案吗?您想用$options['recursive'做什么=50;?对不起,这是一个错误,应该是-1。不管怎样,有人有解决办法吗?
   $this->Lesson->recursive = -1;


        $options['joins'] = array(
            array('table' => 'lessons_students',
                'alias' => 'LessonsStudent',
                'type' => 'LEFT',
                'conditions' => array(
                'Lesson.id = LessonsStudent.lesson_id',
                 )
                 ),

           array('table' => 'students',
                'alias' => 'Student',
                'type' => 'LEFT',
                'conditions' => array(
                'LessonsStudent.student_id=Student.id',
                 )
                 ),
           array('table' => 'subjects',
                        'alias' => 'Subject',
                        'type' => 'LEFT',
                        'conditions' => array(
                        'Lesson.subject_id=Subject.id',
                 )
                 ),
           array(
            'table' => 'tutors',
            'alias' => 'Tutor',
            'type' => 'LEFT',
            'conditions' => array(
            'Lesson.tutor_id = Tutor.id'
        )
        )  ,
          array('table' => 'tutoring_types',
                        'alias' => 'TutoringType',
                        'type' => 'LEFT',
                        'conditions' => array(
                        'Lesson.tutoring_type_id=TutoringType.id',
                 )
                 )
            );

          $options['fields'] = array('Student.last_name','Student.first_name','Student.id',
                    'Lesson.lesson_date', 'Lesson.start_time', 'Lesson.end_time', 'Lesson.id','Lesson.schedule_rec','Lesson.schedule_monthly','Lesson.schedule_yearly',
              'Lesson.cancelled_by', 'Lesson.makeup_lesson', 'Lesson.tutoring_type_id', 'Lesson.forefit',
                    'LessonsStudent.*',
                    'Tutor.last_name', 'Tutor.first_name','Tutor.id',
                    'Subject.name','Subject.id',
                    'TutoringType.*');



             $options['conditions'] = array('Lesson.lesson_inactive' => 0,'Lesson.makeup_lesson' => 0,'Lesson.forefit' => 0,
                         'Lesson.lesson_date >= ' => $startdate,  'Lesson.lesson_date <= ' => $enddate,
                      'AND' =>array(
                      array('OR' => array(
                                   array('Student.first_name LIKE'  => '%' . $searchFirstName  . '%'),
                                   array('Tutor.first_name LIKE'  => '%' . $searchFirstName  . '%'),
                                   array('Student.guardian_first_name LIKE'  => '%' . $searchFirstName  . '%'),
                        ),
                      array('OR' => array(
                                   array('Student.last_name LIKE'  => '%' . $searchLastName  . '%'),
                                   array('Tutor.last_name LIKE'  => '%' . $searchLastName  . '%'),
                                   array('Student.guardian_last_name LIKE'  => '%' . $searchLastName  . '%'),

                        ) ,
                        array('OR' => array(
                                   array('Student.student_mobile LIKE'  => '%' . $searchmobile  . '%'),
                                   array('Tutor.mobile LIKE'  => '%' . $searchmobile   . '%'),
                                   array('Student.guardian_mobile LIKE'  => '%' . $searchmobile   . '%'),

                        )   

                          ))))

          );

            $options['order'] =array('Lesson.lesson_date','Lesson.start_time');             
         $options['limit'] =150;
          $options['page'] =1;

       //    $lessons= $this->Lesson->find('all', $options ); 

          $options['recursive'] =50;

           $this->Paginator->settings = array($options);

          $lessons= $this->Paginator->paginate('Lesson');