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

标签 laravel twitter-bootstrap

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

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

<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>

关于Laravel 7.24 如果用户登录,如何更改导航栏的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64461986/

相关文章:

laravel - 将数据从 blade 传递到 vue 组件

mysql - 在 Laravel 中,我想将列类型从 varchar 更改为 double,它会出错。但是在创建列时它可以正常工作

php - 拉维尔 5 : uploading an image to send in an email

javascript - 调整大小事件的监听器

html - Twitter Bootstrap 中的全宽拆分下拉按钮

php - 如何使用 PHP (Laravel 5.8) 在后台进程中上传 CSV 文件

laravel - 使用 laravel 8 测试上传文件,assertExists 不起作用

jquery - 将警告图标添加到 Bootstrap 对话框

html - CSS:使用 Bootstrap 创建特定布局

html - 如何固定图像右侧图标的位置