cakephp3- where子句中的未知列

时间:2017-06-14 11:24:19

标签: php mysql cakephp-3.0 cakephp-3.x

以下是关联

每所学校都有很多学生。 每所学校属于一个区

$this->table('school');

$this->belongsTo('Districts', [
    'foreignKey' => 'district_id'
]);
$this->hasMany('Students', [
    'foreignKey' => 'school_id'
]);

假设有4个区。 (Districts.id = 1,2,3,4) 在学校的模型中,我正在尝试获取所有学生的列表。 但如果该区为1或2,我只想展示那些得分超过50分的学生。 而对于其他地区,我试图向那些得分低于35分的学生展示。 这是我为上面提到的查找函数。

public function findStudentsList(Query $query, array $options)
{ 
    $query->select(['id','name','modified','created'])
    ->contain([
        'Districts'=> function ($query) {
            return $query->select(['id','name']);
        },
        'Students'  => function ($query) {
            return $query->where([
                'CASE 
                WHEN Districts.id=1 THEN Students.marks >50 
                WHEN Districts.id=2 THEN Students.marks >50 
                ELSE Students.marks < 35 
                END']);
        }       
    ]);
}

但是当我执行此操作时,我收到以下错误。

Column not found: Unknown column 'Districts.id' in where clause

这是正确的方法吗?我是CakePHP3的新手。

1 个答案:

答案 0 :(得分:1)

您应该传递有效的身份证明。

尝试:

id

district_id