我在CakePHP中使用Case语句进行简单的选择查询。
$this->M->find('all', array(
'fields'=>array(
'M.id',
'(CASE WHEN M.check> 0 THEN
TRUNCATE((M.col1 + M.col2),2)
ELSE
TRUNCATE(M.col2, 2)
END) AS TOTAL'
)));
我试图获得这个结果。
(int) 0 => array(
'M' => array(
'id' => '200',
'TOTAL' => '1073.00'
)
)
但是蛋糕输出
(int) 0 => array(
'M' => array(
'id' => '200',
),
(int) 0 => array(
'TOTAL' => '1073.00'
)
)
蛋糕是否为Case Statement呈现了这样的结果,或者我错过了什么?
答案 0 :(得分:2)
你应该使用 http://book.cakephp.org/2.0/en/models/virtual-fields.html 记录在案。
$this->virtualFields['total'] = ...;
然后它会按预期工作。