我想要一个伪动态导航栏,当用户登录时,它会更改颜色。只要用户经过身份验证,无论用户在页面(主页、联系我们页面等(内的何处漫游,都应该发生这种颜色变化。有人能提出一些想法吗?
它不需要是多种颜色。就像用户登录之前一样,它是黑色的。用户登录后,它变为蓝色
<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>
如果您想再次轻松地自定义助手函数,那么您应该更好地使用它。为此:
-
在
app
文件夹中创建helper.php
文件 -
像这个一样把你的代码放进去
<?php function getNavigationColor() { if (auth()->check()){ return 'bg-color-black'; else{ return 'bg-color-blue'; } }
-
编辑
composer.json
在autoload
末尾添加行"autoload": { //... other params "files":[ "app/helpers.php" ] },
-
在命令行中运行
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 ">