丸数字使うと20が限界であることを思い出したため。これは自分への挑戦です。
20を超えてやるぞと。
モデルから繰り返しfindするとき、キャッシュが効くので要注意。
$hoge = $this->Hoge->findByName('foo');
if (!$hoge) { // $hoge == false
$hoge_data = array('Hoge' => array('name' => 'foo'));
$this->Hoge->save($hoge_data);
$hoge = $this->Hoge->findByName('foo'); // $hoge == false
}
ってやると、$hogeはいつまでたってもfalse。
2回目のfindでは、1回目のfindでのキャッシュを返すためです。
これを防ぐためには、2回目のfindの前に
$this->Hoge->create(); // リセット
ってやるか、
$this->Hoge->cacheQueries = false; // キャッシュを無効
ってやるか。
参考:某CakePHPフォーラム
追記:既存データを更新した場合、create()だけじゃキャッシュを見てしまうようだ。新規の場合もひょっとしたら・・・。cacheQueriesをfalseにするのが確実なようです。