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} ドメインのメールアドレスはご登録いただけません");
}
}
} ,
// ===== 独自ルール(指定したドメインは除外する)
],
];
}