Метод markEmailAsVerified
Метод markEmailAsVerified применяется к объекту модели пользователя и отмечает его email-адрес как подтверждённый. Метод обновляет поля 'email_verified_at' текущей датой и временем, а затем сохраняет модель в базе данных. Метод возвращает true в случае успешного обновления.
Синтаксис
<?php
$user->markEmailAsVerified();
?>
Пример использования с аутентифицированным пользователем
Давайте отметим email текущего аутентифицированного пользователя как подтверждённый:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class VerificationController extends Controller
{
public function verify(Request $request)
{
$user = Auth::user();
if ($user->markEmailAsVerified()) {
return response()->json(['message' => 'Email successfully verified.']);
}
return response()->json(['error' => 'Verification failed.'], 400);
}
}
?>
Пример с проверкой перед подтверждением
Перед отметкой email как подтверждённого рекомендуется проверить, не подтверждён ли он уже:
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class EmailVerificationController extends Controller
{
public function confirm(Request $request, User $user)
{
if ($user->hasVerifiedEmail()) {
return response()->json(['error' => 'Email already verified.'], 400);
}
if ($user->markEmailAsVerified()) {
return response()->json(['message' => 'Email successfully verified.']);
}
return response()->json(['error' => 'Verification failed.'], 400);
}
}
?>
Пример в контроллере регистрации
Метод часто используется в процессе регистрации для автоматического подтверждения email, если верификация не требуется:
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
class RegisterController extends Controller
{
public function register(Request $request)
{
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => Hash::make($request->password),
]);
$user->markEmailAsVerified();
return response()->json(['message' => 'User registered and email verified.']);
}
}
?>
Результат выполнения кода:
"User registered and email verified."
Смотрите также
-
метод
hasVerifiedEmail,
который проверяет, подтверждён ли email пользователя -
метод
notify,
который отправляет уведомление пользователю -
класс
User,
который представляет модель пользователя -
фабрика
auth,
которая возвращает экземпляр аутентификатора