これが使えれば、ちょっと特殊なSQLも簡単に発行可能。
下記使った時の例。(ちょこっと改変してあります)
public function myCount() {
$return = Cache::read($this->name.'_'.__FUNCTION__);
if(!$return) {
// バーチャルフィールドの追加
$this->virtualFields = [
'count' => 'count('.$this->alias.'.id)'
];
$conditions = [
$this->alias.'.status' => 1
];
$fields = [
$this->alias.'.hoge',
$this->alias.'.count',
];
$group = $this->alias.'.hoge';
$return = $this->find('list', [
'conditions' => $conditions,
'fields' => $fields,
'group' => $group
]);
Cache::write($this->name.'_'.__FUNCTION__, $return);
}
return $return;
}
う?む。唸るほど便利。