Я хочу создать промежуточное программное обеспечение в моем проекте laravel, чтобы проверить, какой тип пользователей вошел на мой сайт.Идея состоит в том, чтобы проверить, вошел ли пользователь в промежуточное ПО, а затем установить переменную сеанса на определенное значение.
Это промежуточное ПО:
CheckIfLoggedin.php
use Closure;
use Auth;
class CheckIfLoggedin
{
public function handle($request, Closure $next)
{
if (Auth::check()) {
$request->session()->put('loggedin', 'admin');
}
return $next($request);
}
}
Я зарегистрировал его как глобальное промежуточное ПО, как объяснено в документации, добавив эту строку в Kernel.php :
protected $middleware = [
// ...
\App\Http\Middleware\CheckIfLoggedin::class,
];
И япроверьте значение этой переменной сеанса в моем шаблоне блэйда следующим образом:
@if(session('loggedin'))
<!-- some html code -->
@endif
Я знаю, что я также могу использовать это для подтверждения входа в систему:
@auth
<!-- some html code -->
@endauth
, но причинаиспользование этой переменной сеанса заключается в том, что у меня будут различные типы членов (например, member
или admin
), и я бы назначил тип входа в систему для этой переменной сеанса позже, тогда он должен работать следующим образом в шаблоне блейда.:
@if(session('loggedin')=='member')
<!-- some html code that only members can see -->
@elseif(session('loggedin')=='admin')
<!-- some html code that only admins can see -->
@endif
Есть идеи, почему это промежуточное ПО не работает так, как я ожидаю?Обратите внимание, что я довольно новичок в Laravel, хотя ...
Спасибо!