お世話になります。
商品情報を登録する機能を bake で自動生成された add.ctp をベースに開発しています。
入力時に商品ID(orderid)を入力するのですが、重複を防ぎたいと思います。
重複を防ぐバリデーションが、[isUnique]を使うことが分かりましたが、その運用方法がよくわかりません。
bake時に自動生成された別のバリデーションの記述に、
cakephp3
1$validator 2 ->integer('orderid') 3 ->requirePresence('orderid', 'create') 4 ->notEmpty('orderid'); 5
このような書き方があり、参考に以下のようなバリデーション記述を試してみました。
cakephp3
1 $validator 2 ->isUnique('orderid');
表示するメッセージに問題があると考え、以下の記述も試してみました。
cakephp3
1$validator 2 ->isUnique('orderid','すでに使われています'); 3
実際に入力すると、mysql の設定の方からエラーが表示されるだけでした。
Error: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '3' for key 'orderid'
この場合、商品ID:3 はすでに登録されているという意味だと思います。
入力画面のまま方で、「すでにその商品IDは使われています」というエラー表示を再現したいと考えています。
[isUnique]のバリデーション記述を教えてください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/20 08:28