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

Метод hasVerifiedEmail

Метод hasVerifiedEmail применяется к экземпляру модели User и возвращает булево значение, указывающее, подтверждён ли email пользователя. Метод не принимает никаких параметров и доступен только для моделей, использующих трейт MustVerifyEmail. Если пользователь не прошёл верификацию, метод вернёт false.

Синтаксис

<?php $user->hasVerifiedEmail(); ?>

Пример с аутентифицированным пользователем

Давайте проверим, подтвердил ли текущий аутентифицированный пользователь свой email:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; class ProfileController extends Controller { public function show(Request $request) { $user = Auth::user(); if ($user->hasVerifiedEmail()) { echo "Email confirmed"; } else { echo "Email not confirmed"; } } } ?>

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

"Email confirmed"

Пример с конкретным пользователем

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

<?php namespace App\Http\Controllers; use App\Models\User; class UserController extends Controller { public function checkVerification($id) { $user = User::find($id); if ($user && $user->hasVerifiedEmail()) { echo "User verified"; } elseif ($user) { echo "User not verified"; } else { echo "User not found"; } } } ?>

Результат выполнения кода для пользователя с id = 5:

"User not verified"

Пример в Blade-шаблоне

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

@auth @if (Auth::user()->hasVerifiedEmail()) <p>Your email is verified</p> <a href="/dashboard">Go to dashboard</a> @else <p>Please verify your email</p> <a href="/email/verify">Verify now</a> @endif @endauth

Пример с middleware verified

Метод hasVerifiedEmail используется внутри middleware verified для защиты маршрутов. Давайте настроим маршрут, доступный только подтверждённым пользователям:

<?php use App\Http\Controllers\DashboardController; use Illuminate\Support\Facades\Route; Route::middleware(['auth', 'verified'])->group(function () { Route::get('/dashboard', [DashboardController::class, 'index']); }); ?>

Теперь доступ к маршруту '/dashboard' будет разрешён только аутентифицированным пользователям с подтверждённым email-адресом.

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

  • метод markEmailAsVerified,
    который отмечает email пользователя как подтверждённый
  • метод notify,
    который отправляет уведомление пользователю
  • класс User,
    который представляет модель пользователя
  • мидлвар verified,
    который проверяет подтверждение email
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить