Как использовать уникальный идентификатор для каждого меню и выделить его идентификатором, а не классом в Laravel 5.6? - PullRequest
0 голосов
/ 18 ноября 2018

работает с laravel 5.6, и у меня есть элементы бокового меню начальной загрузки, например:

<li class="{{ active_menu(Route::CurrentRouteName(), 'reports', 0,7)}}">
    <a href="{{route('reports.alluser')}}">All Users</a></li>

    <li class="{{ active_menu(Route::CurrentRouteName(), 'reports', 0,7)}}">
    <a href="{{route('reports.pie_chart')}}">Category Chart</a></li>

    <li class="{{ active_menu(Route::CurrentRouteName(), 'reports', 0,7)}}">
    <a href="{{route('reports.categorystatic')}}">Category Static</a></li>

У меня есть вспомогательная функция для этого бокового меню в app / helper / Helper.php

<?php

if(! function_exists('active_menu')) {
    function active_menu($currentRouteName, $requestName, $start, $finish){
        if (substr($currentRouteName,$start, $finish) == $requestName){
            return 'active';

        }else{
            return null;
        }
    }
    }

но когда я нажимаю одну ссылку меню выше, выделите все ссылки меню.проблема здесь во всех ссылках, это выделить все меню, включая «отчеты», 0,7

'reports', 0,7

Как я могу предотвратить выделение всех пунктов меню и выделение только выбранного пункта меню?Я думаю, что если я использую идентификатор, а не класс, я могу решить проблему.но я понятия не имею, как я могу использовать идентификатор для вышеуказанных сегментов кода.дай мне решение

1 Ответ

0 голосов
/ 18 ноября 2018

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

function set_active($path, $keyword = '', $active = 'active')
{
    $url_path = Request::path();

    if (Request::is($path)
        || ($keyword && strpos($url_path, $keyword) !== false)) {
        return ' class="' . $active . '"';
    }

    return '';
    // return Request::is( $path . '*' ) ? ' class="' . $active . '"' :  '';
}

Затем в навигационной части шаблона блейда я сделал что-то вроде этого

<ul class="nav navbar-nav">
    <li {!! set_active('/') !!}>
        <a href="/">Home</a>
    </li>
    <li {!! set_active('about-us') !!}>
        <a href="/about-us">About Us</a>
    </li>
    <li {!! set_active('job-listing', 'job') !!}>
        <a href="/job-listing">Jobs</a>
    </li>
    <li {!! set_active('employers', 'employer') !!}>
        <a href="/employers">Employers</a>
    </li>
    <li {!! set_active('contact-us') !!}>
        <a href="/contact-us">Contact Us</a>
    </li>
</ul>

ИЛИ в вашем случае сделайте что-то подобное

<li {!! set_active(Route::getCurrentRoute()->uri) !!}>
    <a href="{{route('reports.alluser')}}">All Users</a>
</li>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...