cakePHPで、
primary keyを original_idとしている場合、
deleteで失敗します。
なので、ModelでprimaryKeyを指定すればいいんだろって思うけれどもところがどっこい。
modelにおいて、
public $primaryKey = "original_id"
とすればよいと、どこを見ても書いてあるのですが、
実際には、
public $displayField = "original_id"
これも書かないといけません。
なぜかって、cakePHPがdeleteの前に、fetchAllをしていたからでした。
そこでdisplayFieldの値が欲しいわけです。
もちろんうまくいくケースがあります。
それはマニュアルにある通り、displayFieldを指定しない場合はデフォルトとして、[id]を参照するからです。さらに[id]が無い場合は、[name]と[title]も見に行くみたいです。それらもなければ、エラーです。残念ながら。
cakePHPは便利な分、デフォルトで設定されているところがあるので、困ったもんですね。
ちなみに、Stack Overflowでも投稿がありますが、最終的には「doesn't work」で、deleteAllにすれば?ってことになってます。もちろん、displayField指定しないでdeleteAllで解決できますが気持ち悪いですよね。
こっちでもうすこし詳しく書こうかと思ってます。まずはメモ程度に。(-_-;)http://staff.qualias.jp