$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 件のコメント:
コメントを投稿