[CakePHP]find(‘count’) の注意点

CakePHPクッキング

CakePHPでcountを使った処理でハマったポイント。

通常使うときは、

$data = $this->Sample->find('count');

だったり、

$params = array(
    'conditions' => array('status' => 1),
);
$data = $this->Sample->find('count', $params);

のように使うのですが、$paramsをひとつ前の処理のものを流用したら、ハマりました。

$params = array(
    'fields' => array('id', 'name'),
    'conditions' => array('status' => 1),
);

// 途中省略

$data = $this->Sample->find('count', $params);

どんな状態でもcountを呼び出せばカウントされると思っていたら、fieldsを指定していると正常に動きませんでした。

実際、Cookbookにもちゃんと書いてありました。

find(‘count’) では、 fields に配列を渡してはいけません。

3.7.3.1.2 find(‘count’)

fieldsを無視してcountしてくれるとうれしいなと思います。

コメントをどうぞ

メールアドレスが公開されることはありません。