Cake PHP - 如何仅检查最后一个条件

时间:2017-01-25 18:27:16

标签: php cakephp

我正在按照书签教程的说明操作,我的其中一个查询有问题。

我已经从我的数据库中烘焙了所有模型(比如在教程中),现在我想准备自定义查找程序。

我有两个表格学术教师和评估

CREATE TABLE evaluations (
  ID                        int(10) NOT NULL AUTO_INCREMENT, 
  academic_teacher_ID int(10) NOT NULL, 
  framework_ID           int(10) NOT NULL, 
  protocol_ID   int(10) NOT NULL, 
  final_note                     DOUBLE, 
  room                      varchar(255), 
  PRIMARY KEY (ID)) ;
CREATE TABLE academic_teachers (
  ID         int(10) NOT NULL AUTO_INCREMENT, 
  name       varchar(255) NOT NULL, 
  surname   varchar(255) NOT NULL, 
  national_identification_number      int(10) NOT NULL, 
  occupation varchar(4), 
  degree      varchar(255), 
  department  varchar(255), 
  PRIMARY KEY (ID)) ;

我想找到老师,他们在上一次评估时得到了低调。

public function findLowNotes(Query $query, array $options)
{
return $this->find()
->distinct(['AcademicTeachers.id'])
->matching('Evaluations', function ($q) {

    return $q->where(['Evaluations.final_note' < 3]);
});

但它会找到所有有过任何不良记录的老师。应该怎么样?我可以使用其中一种检索我找到的最后一个ID的方法吗?或者有一种更聪明的方式肯定会起作用?我很困惑如何将它们组合在一起。

并且 - 是否有可能在这里加入final_note,所以我可以将它与教师的数据一起分页?

您诚挚的, Milven

1 个答案:

答案 0 :(得分:0)

这不对。

return $q->where(['Evaluations.final_note' < 3]);

应该是。

return $q->where(['Evaluations.final_note <' => 3]);