cakePHPでsumやcountを使う時のメモ。
通常、
$fields = array('Model.field1', 'sum(field2) as fieldname');
とかにすると、
[Model][field1]
[0][fieldname]
とかいう形で返ってきて気持ち悪い。
調べてみると、「このソースをAppModelにぶちこめ」的なものを発見。
function afterFind($results, $primary=false) {
if($primary == true) {
if(Set::check($results, '0.0')) {
$fieldName = key($results[0][0]);
foreach($results as $key=>$value) {
$results[$key][$this->alias][$fieldName] = $value[0][$fieldName];
unset($results[$key][0]);
}
}
}
return $results;
}
これをAppModelにぶち込んでおくと、
[Model][field1]
[fieldname]
という形で返ってきてすっきり。
ようやく理想の形で返ってくるようになった。