【问题标题】:Laravel PHP, navbar "not active"Laravel PHP,导航栏“不活跃”
【发布时间】:2022-01-25 08:32:00
【问题描述】:

我在我的 laravel(php 框架)项目之一中的导航栏突然停止工作,我想我已经尝试了一切,但没有任何效果,也没有让我回到它工作的地方,任何解决方案或建议如何修复这个问题? 导航栏

<div class="container mx-auto flex justify-between p-4">
  <h1 class="text-xl font-black">stackoverflow</h1>
  <nav class="navbar navbar-inverse navbar-fixed-top">
    <a href="{{ route('home') }}" class="text-lg mx-2 text-white hover:text-pink-500 transition">Home</a>
    <a href="{{ route('about') }}" class="text-lg mx-2 text-white hover:text-black transition">About</a>
  </nav>
</div>

web.php

Route::get('/', function () {
    return view('index');
})->name('home');

Route::get('/about', function () {
    return view('about');
})->name('about');

默认

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>sss</title>
    <link rel="stylesheet" href="{{ asset('css/app.css')}}">
</head>
<body class='bg-sky-500 text-white'>
    <header class="fixed bg-sky-400 top-0 left-0 right-0" z-50>
        <div class="container mx-auto flex justify-between p-4">
            <h1 class="text-xl font-black">ssss</h1>
            <nav class="navbar navbar-inverse navbar-fixed-top">
                <a href="{{ route('home') }}" class="text-lg mx-2 text-white hover:text-pink-500 transition">Home</a>
                <a href="{{ route('about') }}" class="text-lg mx-2 text-white hover:text-black transition">About</a>
            </nav>
        </div>
    </header>

    <main>
        @yield('page-content')
    </main>

    <footer>
        <div class="container mx-auto p4">
            <p>&copy; 
                <a>ssss</a>
                <a href="{{ url('ssss') }}"class="bg-color-pink-500 text-center py-2 px-4 rounded hover:bg-purple-500 transition">sss</a> 
                <a href="{{ url('ssss') }}"class="bg-color-pink-500 text-center py-2 px-4 rounded hover:bg-purple-500 transition">ssss</a>
                </p>
            

        </div>
    </footer>
</body>
</html>

编辑: https://github.com/wsamselbaudat/LaravelProject 资源/观点/ 2个blade.php文件(忽略dashborad),在关于页面的导航栏工作得很好,我希望导航栏在index.blade.php上工作

【问题讨论】:

  • 你能把父页面的代码发给我们吗? HTML 和路由看起来不错,也许你忘了包含它?
  • 我在整个项目中使用了:@yield('page-content') @extends('layouts.default'),导航栏在 layouts.default 中,我猜是这样(我不太确定,我是 Laravel 新手)应该是我的父页面,如果它没有帮助我可以将它的代码发送给你,如果它是父页面,只需 lmk。
  • 分享您的parent/master/main/default 布局的代码,在我看来,根据您的评论,父布局被命名为default。重要提示:请在您的问题中添加代码,而不是在评论中
  • 什么都不起作用是什么意思?不重定向到其他页面?路线不工作?当前导航栏未激活?你的问题很混乱
  • &lt;a href="{{ route('home') }}" class="{{ Route::currentRouteNamed('home') ? 'active' : '' }} text-lg mx-2 text-white hover:text-pink-500 transition"&gt;Home&lt;/a&gt; 应该可以工作。当您在主路线上时,将选择主菜单项,通常为粗体。

标签: php css laravel


【解决方案1】:

您可以使用 request() 助手 is() 方法检查当前 url 或者可以使用 request()->url() 方法获取当前 url 并与链接路由 url 进行比较

试试这个

<a href="{{ route('home') }}" class="@if(request()->is('/')) your-active-class @endif text-lg mx-2 text-white hover:text-pink-500 transition">Home</a>
<a href="{{ route('home') }}" class="@if(request()->is('/about')) your-active-class @endif text-lg mx-2 text-white hover:text-pink-500 transition">Home</a>

或者

<a href="{{ route('home') }}" class="@if(request()->url()==route('home')) your-active-class @endif text-lg mx-2 text-white hover:text-pink-500 transition">Home</a>
<a href="{{ route('home') }}" class="@if(request()->url()==route('about')) your-active-class @endif text-lg mx-2 text-white hover:text-pink-500 transition">Home</a>

【讨论】:

  • 或者简单地使用Route::currentRouteNamed('route-name')辅助方法{{ Route::currentRouteNamed('home') ? 'active-class' : '' }}
  • 这些都不适合我,添加了整个默认页面对你有帮助
  • 通过转储当前 url 和路由名称 url 检查 url 匹配,如果它们相同,那么上述方法必须正常工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-12
  • 2018-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-06
  • 1970-01-01
相关资源
最近更新 更多