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

Директива auth

Директива auth в Blade позволяет проверить, аутентифицирован ли текущий пользователь. Она используется для условного отображения контента в зависимости от статуса аутентификации. Директива может принимать необязательный параметр - название guard, если используется несколько guard'ов. Также существует парная директива guest, которая проверяет, что пользователь не аутентифицирован.

Синтаксис

@auth {{-- Контент для аутентифицированных пользователей --}} @endauth @auth('admin') {{-- Контент для аутентифицированных через guard 'admin' --}} @endauth @guest {{-- Контент для гостей (не аутентифицированных) --}} @endguest

Пример

Покажем приветственное сообщение для аутентифицированных пользователей и ссылку на вход для гостей:

@auth <p>Welcome, {{ auth()->user()->name }}!</p> <a href="{{ route('logout') }}">Logout</a> @endauth @guest <p>Welcome, guest!</p> <a href="{{ route('login') }}">Login</a> @endguest

Пример

Использование директивы auth с указанием конкретного guard. Например, для административной панели:

@auth('admin') <h1>Admin Panel</h1> <p>You have access to admin functionality.</p> @endauth @auth('web') <p>You are logged in as regular user.</p> @endauth @guest('admin') <p>Please login to access admin panel.</p> @endguest

Пример

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

@foreach ($posts as $post) <div class="post"> <h3>{{ $post->title }}</h3> <p>{{ $post->excerpt }}</p> @auth <a href="{{ route('posts.edit', $post) }}">Edit</a> @endauth @guest <a href="{{ route('login') }}">Login to edit</a> @endguest </div> @endforeach

Пример

Пример контроллера, который передаёт данные в представление с использованием директивы auth:

<?php namespace App\Http\Controllers; use App\Models\Post; use Illuminate\Http\Request; class PostController extends Controller { public function index() { $posts = Post::all(); return view('posts.index', ['posts' => $posts]); } }

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

"<div class='post'> <h3>Article 1</h3> <p>Short description of article 1</p> <a href='/posts/1/edit'>Edit</a> </div>"

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

"<div class='post'> <h3>Article 1</h3> <p>Short description of article 1</p> <a href='/login'>Login to edit</a> </div>"

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

  • директива guest,
    которая проверяет, что пользователь не аутентифицирован
  • директива can,
    которая проверяет права пользователя на действие
  • директива if,
    которая позволяет создавать условные конструкции
  • директива foreach,
    которая используется для перебора массивов и коллекций
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить