CakePHP 一部のバリデーションルールを解除する
notoです。
CakePHPでバリデーションルールの一部を解除したいときがあるかと思いますが、今回はその方法についてです。
Cakeはバリデーション機能が優秀だと思いますが、例えば「パスワードを忘れたら」などの機能で E-mailを入力させてメールを送信する際に、バリデーションを行うことがあるかもしれません。
isUniqueをバリデーションルールとして定義しておくと、入力されたメールアドレスが既に登録されているので、バリデーションエラーが発生してしまいます。
そこで、バリデーションを行う前に、isUniqueを外しておきたいとなるわけです。
バリデーション定義
emailフィールドに、このようなバリデーションが定義されているとします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
一部のバリデーションを解除
バリデーション定義はUserモデルのvalidateプロパティにセットされているので、解除したいルールをunsetしてあげると、そのバリデーションルールは解除されます。
1 2 3 4 5 6 |
|
バリデーションルールの解除方法でした。 逆に特定の処理だけvalidateプロパティに、バリデーションルールを追加するってこともできるはずです。やったことないけど。。。