您好我有以下关联的模型徽标
var $belongsTo = array(
'Attachment' => array(
'className'=>'Attachment',
'foreignKey'=>'attachment_id'
),
'Employee' => array(
'className'=>'Employee',
'foreignKey'=>'employee_id'
)
);
var $hasMany = array(
'Voting' => array(
'className'=>'Voting',
'foreignKey'=>'program_id'
)
);
我用以下方式写了一个查询它会抛出错误
$PrgCond['contain'] = array(
'Attachment',
'Voting' => array(
'fields' => array(
'logo_program_id',
'COUNT(employee_id) as noOfEmps'
),
'group' => array('LogoVoting.logo_program_id')
),
'Employee' => array(
'fields' => array('id', 'employee_number', 'first_name', 'last_name')
)
);
$logoPrgDatas = $this->Program->find('all',$PrgCond);
Thrown Error is
SQL Error: 1054: Unknown column 'LogoVoting.logo_program_id' in 'field list'
答案 0 :(得分:1)
这是一个老问题,但仍会出现在Google搜索结果中。 我有一个类似的问题,发现当你有关联或在cakephp 1. *或2. *中使用可包含的行为(使用关联)时,你不能在模型查找选项中使用组。
但是,使用查询构建器在cakephp 3. *中修复了此问题! :)
答案 1 :(得分:0)
在您的字段中引用该模型是个好主意。例如,在条件或字段数组中使用列时,应将其称为Model.column_name
。
话虽如此,您遇到的问题很可能与该群体有关:
'group' => array('LogoVoting.logo_program_id')
模型中没有LogoVoting
。它应该是:
'group' => array('Voting.logo_program_id')
所以我会将查询更新为:
$PrgCond['contain'] = array(
'Attachment',
'Voting' => array(
'fields' => array(
'Voting.logo_program_id',
'COUNT(Voting.employee_id) as noOfEmps',
),
'group' => array('Voting.logo_program_id'),
),
'Employee' => array(
'fields' => array(
'Employee.id',
'Employee.employee_number',
'Employee.first_name',
'Employee.last_name',
),
),
);