Динамическое изменение значения div, панель навигации на лезвии laravel


В настоящее время я использую блейд laravel и в настоящее время реализовал начальную загрузку вместе с шаблоном блейда.

Хотелось бы, чтобы кнопка навигации могла динамически взаимодействовать с выбранными страницами

<div class="navbar">
    <nav class="navbar navbar-inverse navbar-fixed-top">
        <div class="container-fluid">
            <div class="navbar-header">
                  <a class="navbar-brand" href="#"><b>iMakan</b></a>
           </div>
    <div>
  <ul class="nav navbar-nav navbar-right">
    <li><a class="active "href="/">Home</a></li>
    <li><a href="about">About Us</a></li>
    <li><a href="contact">Contact Us</a></li>
    <li><a href="auth/login">Login</a></li>
    <li><a href="503">Cart</a></li>
  </ul>
</div>
</div>
</nav>
</div>
Author: Ajaxcbcb, 2015-11-07

3 answers

Laravel предоставляет встроенную функцию, которую вы можете использовать: Request::is().

Из документов API :

Определите, соответствует ли текущий URI запроса шаблону.

Вы используете вот так:

Request::is('about'); // returns a boolean

<a href="about" @if(Request::is('about')) class="active" @endif>

Вы могли бы написать вспомогательную функцию, чтобы позаботиться об этом:

function isActive($path, $class = 'active')
{
    return (Request::is($path)) ? $class : '';
}

Поместите его в файл с именем helpers.php в вашем каталоге app и включите его в загрузочную часть вашего composer.json следующим образом:

"autoload": {
    "files": [
        "app/helpers.php"
    ]
},

Возможно, вам нужно сделать composer dump-autoload в ваш терминал.


И, наконец, используйте его так:

<a href="about" class="{{ isActive('about') }}">About</a>
 5
Author: Tim, 2015-11-07 12:01:04

Вот мой путь, Что я делаю, Вы тоже должны следовать этому

Если у вас есть последняя часть URL-адреса, например home для дома, aboutus для О нас, то вы можете сделать это

Шаг 1 :

Получить Uri запроса

$_SERVER['REQUEST_URI']

Шаг 2 :

Внутри вас class у вас может быть это условие

<?php if ($_SERVER['REQUEST_URI']=='/') { echo 'active'; } ?>

Таким образом, у вас будет

<li><a href="about" class='<?php if ($_SERVER['REQUEST_URI']=='/') { echo 'active'; } ?>' >About Us</a></li>

Условие будет повторяться active в соответствии с вашим uri

Таким образом, у вас будет что-то такое

<ul class="nav navbar-nav navbar-right">
    <li><a class="<?php if ($_SERVER['REQUEST_URI']=='/') { echo 'active'; } ?>" href="/">Home</a></li>
    <li><a class='<?php if ($_SERVER['REQUEST_URI']=='/aboutus') { echo 'active'; } ?>'href="about" >About Us</a></li>
    <li><a class='<?php if ($_SERVER['REQUEST_URI']=='/contactus') { echo 'active'; } ?>'href="contact">Contact Us</a></li>
    <li><a class='<?php if ($_SERVER['REQUEST_URI']=='/login') { echo 'active'; } ?>' href="auth/login">Login</a></li>
    <li><a class='<?php if ($_SERVER['REQUEST_URI']=='/cart') { echo 'active'; } ?>' href="503">Cart</a></li>
  </ul>

Затем вы получите class='active' в соответствии с вашим URL-адресом.

Надеюсь, это поможет вам.

 0
Author: Sulthan Allaudeen, 2015-11-07 10:34:48

Существует пакет , который вы можете использовать, но, используя только то, что предоставляет laravel, я бы предложил следующее:

<a href="{{ URL::route('home') }}" 
   class="{{ Route::current()->getName() === 'home' ? : 'active' : ''">Home</a>

Использование URL::route(...) создаст URL-адрес на основе имени маршрута, и вы можете проверить, используется ли это имя в настоящее время с помощью проверки providec. Чтобы назвать маршрут, прочитайте документацию laravel о маршрутизации.

 0
Author: svrnm, 2015-11-07 10:44:33