Метод guest
Метод guest класса Auth проверяет, не аутентифицирован ли текущий пользователь. Он возвращает true, если пользователь не вошёл в систему, и false, если пользователь аутентифицирован. Это противоположность методу check. Метод полезен для проверки доступа к страницам, которые должны быть доступны только гостям (например, страница входа или регистрации).
Синтаксис
<?php
use Illuminate\Support\Facades\Auth;
$isGuest = Auth::guest();
?>
Метод не принимает параметров и возвращает булево значение.
Пример
Давайте проверим, является ли пользователь гостем в контроллере:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Auth;
class AuthController extends Controller
{
public function showLoginForm()
{
if (Auth::guest()) {
return view('auth.login');
}
return redirect('/dashboard');
}
}
?>
Результат выполнения кода:
"Redirect to /dashboard if user logged in"
"Show login form if user is guest"
Пример
Используем метод guest в шаблоне Blade для условного отображения контента:
@auth
<p>Welcome, {{ Auth::user()->name }}</p>
@endauth
@guest
<p>Please log in to access full features</p>
@endguest
@if (Auth::guest())
<a href="/login">Login</a>
@else
<a href="/logout">Logout</a>
@endif
Результат выполнения кода для гостя:
Please log in to access full features
Login
Пример
Проверим статус гостя в middleware для защиты страниц входа:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class RedirectIfAuthenticated
{
public function handle($request, Closure $next, ...$guards)
{
if (Auth::guest()) {
return $next($request);
}
return redirect('/home');
}
}
?>
Результат выполнения кода:
"User is guest - continue to login page"
"User is authenticated - redirect to home"