[hello world 動かない ][検索]

プログラミング関連で自分が調べた事をメモる

cakephp ID 文字列 ランダム

CakePHPでID列にランダム文字列を設定する

バージョン
CakePHP 2.6.4

http://shim0111.hatenablog.com/entry/2015/04/30/121925

↑の様な事をCakePHPでやりたかったが
IDに既に存在する文字列のデータを入力しようとすると勝手にUpdateになってしまい
一意制約違反を捉まえられなかった

で、どうしようかと調べていたら
http://book.cakephp.org/2.0/ja/getting-started/cakephp-conventions.html#id3

また、主キーをオートインクリメントとしてではなく、char(36)として使用しても構いません。 そうすると、Model::save メソッドを使って新規レコードを保存するとき、Cakeはユニークな36文字のuuid (String::uuid) を用いようとします。

と言う事で、自分でランダム文字列を作る必要も、重複した場合の処理を考えることもなく
主キーの定義をCHAR(36)に変えるだけで問題解決した。