РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
573 of 1392 menu

Правило email

Правило email используется для проверки, что значение поля является корректным адресом электронной почты. Это правило применяется при валидации данных форм в Laravel и проверяет соответствие формата стандартным требованиям RFC 5322. Правило может быть использовано как строка или с дополнительными параметрами для указания типа валидации.

Синтаксис

Базовый синтаксис правила email в массиве правил валидации:

<?php 'email' => 'required|email' ?>

С дополнительными параметрами:

<?php 'email' => 'required|email:rfc,strict' ?>

Пример

Давайте создадим контроллер с методом для обработки формы регистрации пользователя с валидацией email:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; class UserController extends Controller { public function register(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required|string|max:255', 'email' => 'required|email|unique:users,email', 'password' => 'required|min:8', ]); if ($validator->fails()) { return response()->json([ 'errors' => $validator->errors() ], 422); } return response()->json([ 'message' => 'User registered successfully' ]); } } ?>

Результат выполнения кода при корректных данных:

"User registered successfully"

Результат выполнения кода при некорректном email:

{ "errors": { "email": ["The email must be a valid email address."] } }

Пример

Рассмотрим использование правила email с различными вариантами валидации в классе FormRequest:

<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class RegisterRequest extends FormRequest { public function authorize(): bool { return true; } public function rules(): array { return [ 'name' => 'required|string|max:100', 'email' => 'required|email:rfc,strict|max:255', 'password' => 'required|min:8|confirmed', ]; } public function messages(): array { return [ 'email.email' => 'Поле email должно быть корректным адресом электронной почты.', 'email.required' => 'Поле email обязательно для заполнения.', ]; } } ?>

Пример

Давайте используем правило email в Blade-шаблоне формы регистрации с выводом ошибок валидации:

<form method="POST" action="/register"> @csrf <div> <label for="name">Name:</label> <input type="text" id="name" name="name" value="{{ old('name') }}"> @error('name') <span class="error">{{ $message }}</span> @enderror </div> <div> <label for="email">Email:</label> <input type="email" id="email" name="email" value="{{ old('email') }}"> @error('email') <span class="error">{{ $message }}</span> @enderror </div> <div> <label for="password">Password:</label> <input type="password" id="password" name="password"> @error('password') <span class="error">{{ $message }}</span> @enderror </div> <button type="submit">Register</button> </form>

Пример

Рассмотрим валидацию нескольких email-адресов с использованием правила email для массива данных:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; class EmailController extends Controller { public function validateMultipleEmails(Request $request) { $validator = Validator::make($request->all(), [ 'emails' => 'required|array|min:1', 'emails.*' => 'required|email:rfc,strict' ]); if ($validator->fails()) { return response()->json([ 'errors' => $validator->errors() ], 422); } $emails = $request->input('emails'); return response()->json([ 'message' => 'All emails are valid', 'count' => count($emails) ]); } } ?>

Результат выполнения кода при корректных данных:

{ "message": "All emails are valid", "count": 3 }

Смотрите также

  • правило required,
    которое делает поле обязательным для заполнения
  • правило unique,
    которое проверяет уникальность значения в таблице
  • правило confirmed,
    которое проверяет совпадение с полем подтверждения
  • правило url,
    которое проверяет корректность URL-адреса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить