嗨,我有以下协会的模型标志
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' 发布于 2015-01-30 23:48:54
这是一个古老的问题,但仍然会出现在谷歌的搜索结果中。我也遇到过类似的问题,我发现当你有关联或者在cakephp 1.*或2.*中使用可包含的行为(使用关联)时,你不能在模型查找选项中使用组。
但是,在cakephp 3.*中使用查询构建器!:)修复了此问题
发布于 2013-11-27 08:54:53
在您的字段中引用模型是一个好主意。例如,在条件或字段数组中使用列时,应将其命名为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',
),
),
);https://stackoverflow.com/questions/20221854
复制相似问题