$validator
->minLength('password', 8, __('6文字以上を入力してください。'))
->maxLength('password', 50, __('20文字以下を入力してください。'))
->alphaNumeric('password', 'alphaNumeric', __('半角英数字のみ入力可能です。'))
->regex('password', '/[a-zA-Z]+/', __('半角英字を1文字以上利用してください。'))
->regex('password', '/[0-9]+/', __('半角数字を1文字以上利用してください。'))
->requirePresence('password', 'create')
->notEmpty('password');
こんな場合は上書きされてしまって、半角英字チェックは動かないので、
こういう場合のみ add で名前を変えて指定するようにして重複を回避する。
$validator
->minLength('password', 8, __('6文字以上を入力してください。'))
->maxLength('password', 50, __('20文字以下を入力してください。'))
->alphaNumeric('password', 'alphaNumeric', __('半角英数字のみ入力可能です。'))
->add('password', [
'inAlpha' => [
'rule' => ['custom', '/[a-zA-Z]+/'],
'message' => __('半角英字を1文字以上利用してください。'),
],
'inNumber' => [
'rule' => ['custom', '/[0-9]+/'],
'message' => __('半角数字を1文字以上利用してください。'),
],
])
->requirePresence('password', 'create')
->notEmpty('password');
$validator
->notEmpty('password_conf')
->sameAs('password_conf', 'password', __('異なるパスワードが入力されています。'))
->requirePresence('password', 'create')
->notEmpty('password');
最初からこの記述を基本にすれば良いと思っていたけどやっぱり bake を基本にした方が効率が良い場面が多いので、
必要な場合のみ利用するようにしました。
regex メソッドの中を見ると解るけど rule としては custom という落とし穴に注意。
0 件のコメント:
コメントを投稿