Laravel 5: Change navbar if user is logged

后端 未结 6 437
盖世英雄少女心
盖世英雄少女心 2021-02-03 18:57

I\'m completely new to Laravel, MVC and templating engines in general.

I need to show certain navbar buttons and options if a user is logged in such as: Notifications, L

相关标签:
6条回答
  • 2021-02-03 19:23

    This should help :

    @extends(Auth::check() ? 'partials.navbarlogged' : 'partials.navbar')
    

    The Auth::chek() sees whether the user is logged in or not and returns a boolean.

    0 讨论(0)
  • 2021-02-03 19:24

    You can also use Auth::guest()

    The Auth::guest() method returns true or false.

    Example -

    @if (Auth::guest())
        <a href="{{ route('login') }}">Login</a>
        <a href="{{ route('register') }}">Register</a>
    @else
        {{ Auth::user()->name }}
        <a href="{{ route('logout') }}">Logout</a>
    @endif
    
    0 讨论(0)
  • 2021-02-03 19:26

    Starting from Laravel 5.4 there's new blade directive @includeWhen which includes view based on a given boolean condition :

    @includeWhen(Auth::check(), 'partials.navbarlogged')
    @includeWhen(Auth::guest(), 'partials.navbar')
    
    0 讨论(0)
  • 2021-02-03 19:27

    New versions of Laravel (5.6 at time of writing) support these two directives in Blade:

    @auth
    // The user is authenticated...
    @endauth
    
    @guest
    // The user is not authenticated...
    @endguest
    

    See official documentation here: https://laravel.com/docs/5.6/blade

    0 讨论(0)
  • 2021-02-03 19:32

    If you are using Laravel 5's built in User model you can simply do

    @if (Auth::check())
      //show logged in navbar
    @else
      //show logged out navbar
    @endif
    
    0 讨论(0)
  • 2021-02-03 19:40

    For laravel 5.7 and above, use @auth and @guest directives.Here is the official documentation here

    @auth
       // The user is authenticated...
    @endauth
    @guest
       // The user is not authenticated...
    @endguest
    

    You may specify the authentication guard that should be checked when using the @auth and @guest directives:

    @auth('admin')
        // The user is authenticated...
    @endauth
    
    @guest('admin')
        // The user is not authenticated...
    @endguest
    

    Otherwise, you can use the @unless directive:

    @unless (Auth::check())
        You are not signed in.
    @endunless
    
    0 讨论(0)
提交回复
热议问题