人気のPHP WEBアプリケーションフレームワークLaravelのTipsを記録していきます

Laravel の バリデーションに独自のルールを追加する

public function rules()
{
    $ignore_email_array = [ 'aaa.com', 'bbb.com', 'ccc.com' ];

    return [
        'email' => [
            'required', 'email', 'confirmed',
            // ===== 独自ルール(指定したドメインは除外する)
            function ($attribute, $value, $fail) use ($ignore_email_array) {
                foreach ($ignore_email_array as $ignore_domain) {
                    $pattern = '/' . preg_quote($ignore_domain, '/') . '/';
                    if (preg_match($pattern, $value) !== 0) {
                        return $fail("{$ignore_domain} ドメインのメールアドレスはご登録いただけません");
                    }
                }
            } ,
            // ===== 独自ルール(指定したドメインは除外する)
        ],
    ];
}
No.1641
12/12 22:01

edit