これが使えれば、ちょっと特殊な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; }
う?む。唸るほど便利。