Laravel 7.24如果用户登录,我如何更改导航栏的颜色



我想要一个伪动态导航栏,当用户登录时,它会更改颜色。只要用户经过身份验证,无论用户在页面(主页、联系我们页面等(内的何处漫游,都应该发生这种颜色变化。有人能提出一些想法吗?

它不需要是多种颜色。就像用户登录之前一样,它是黑色的。用户登录后,它变为蓝色

<div class="container-fluid">
<nav class="navbar navbar-expand-md navbar-dark bg-dark">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">About Us</a>
</li>
<li class="nav-item">
<a class="nav-link" href="contact">Contact Us</a>
</li>
</ul>
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="login">Login</a>
</li>
<li class="nav-item">
<a class="nav-link"href="new_user">Signup</a>
</li>
</ul>
</div>
</nav>

如果您想再次轻松地自定义助手函数,那么您应该更好地使用它。为此:

  1. app文件夹中创建helper.php文件

  2. 像这个一样把你的代码放进去

    <?php
    function getNavigationColor()
    {
    if (auth()->check()){
    return 'bg-color-black';
    else{
    return 'bg-color-blue';
    }
    }
    
  3. 编辑composer.jsonautoload末尾添加行

    "autoload": {
    //... other params
    "files":[
    "app/helpers.php"
    ]
    },
    
  4. 在命令行中运行composer du

现在您可以在项目中的任何位置访问getNavigationColor((。

然后像这样在任何你想要的地方使用它:

<div class="container-fluid">
<nav class="navbar navbar-expand-md navbar-dark bg-dark {{ getNavigationColor() }}">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">About Us</a>
</li>
<li class="nav-item">
<a class="nav-link" href="contact">Contact Us</a>
</li>
</ul>
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="login">Login</a>
</li>
<li class="nav-item">
<a class="nav-link"href="new_user">Signup</a>
</li>
</ul>
</div>
</nav>

您可以这样做:

@if (auth()->check()) {{-- or Auth::check() --}}
//show logged in stuff
@else
//show logged out stuff
@endif

你的代码看起来像

<nav class="navbar navbar-expand-md navbar-dark @if(auth()->check()) bg-blue @else bg-black @endif">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">About Us</a>
</li>
<li class="nav-item">
<a class="nav-link" href="contact">Contact Us</a>
</li>
</ul>
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="login">Login</a>
</li>
<li class="nav-item">
<a class="nav-link"href="new_user">Signup</a>
</li>
</ul>
</div>
</nav>

您可以使用laravel-blade指令来简化此任务。

对经过身份验证的用户使用@auth指令,对guest用户使用@guest指令。

<nav class="navbar navbar-expand-md navbar-dark @auth bg-blue @endauth @guest bg-black @endguest ">

最新更新