【问题标题】:Make active class for parent and subs in Laravel在 Laravel 中为父级和子级创建活动类
【发布时间】:2018-05-13 17:35:59
【问题描述】:

我有这样的菜单:

<li class="treeview">
        <a href="#"><i class="fa fa-comment"></i> <span>Comments</span>
            <span class="pull-right-container">
                <i class="fa fa-angle-left pull-right"></i>
            </span>
        </a>
        <ul class="treeview-menu">
            <li><a href="http://blog.dev/member/comments">All Comments</a></li>
            <li><a href="http://blog.dev/member/comments?q=me">My Comments</a></li>
            <li><a href="http://blog.dev/member/comments?q=approved">Approved</a></li>
            <li><a href="http://blog.dev/member/comments?q=disapproved">Disapproved</a></li>
        </ul>
    </li>

我想要的只是当我点击子菜单时,例如“我的 cmets”菜单,评论菜单和我的评论活动将有一个这样的类

    <li class="active"><a href="#"><i class="fa fa-comment"></i> <span>Comments</span></a></li>
    <li class="active active-sub"><a href="http://blog.dev/member/comments?q=me">My Comments</a></li>

那么我怎样才能做到这一点呢?谢谢

【问题讨论】:

    标签: laravel laravel-5 laravel-blade


    【解决方案1】:

    试试这个:

    <li class="treeview {{ (request()->is('member/comments')) ? 'active':''  }}">
        <a href="#"><i class="fa fa-comment"></i> <span>Comments</span>
            <span class="pull-right-container">
                <i class="fa fa-angle-left pull-right"></i>
            </span>
        </a>
        <ul class="treeview-menu">
            <li class="{{ (request()->is('member/comments') && (request('q') == '')) ? 'active active-sub':''  }}">
                <a href="http://blog.dev/member/comments">All Comments</a>
            </li>
            <li class="{{ (request('q') == 'me') ? 'active active-sub':''  }}">
                <a href="http://blog.dev/member/comments?q=me">My Comments</a>
            </li>
            <li class="{{ (request('q') == 'approved') ? 'active active-sub':''  }}">
                <a href="http://blog.dev/member/comments?q=approved">Approved</a>
            </li>
            <li class="{{ (request('q') == 'disapproved') ? 'active active-sub':''  }}">
                <a href="http://blog.dev/member/comments?q=disapproved">Disapproved</a>
            </li>
        </ul>
    </li>
    

    【讨论】:

      【解决方案2】:

      您可以在接受模式检查的Request 对象上使用is() 方法。例如&lt;li class="{{ request()-&gt;is('comments*') ? 'active' : '' }}"&gt;。这意味着如果 uri 'cmets' 单词中的某处存在,则将添加 'active' 类。当然你可以更具体,你可以省略通配符。

      【讨论】:

        【解决方案3】:

        使用带有 if 子句的 is 方法;

        {{Request::is('sample-url') ? 'class="active"' : ''}}
        

        (检查url,如果url中有'sample-url'则返回class="active",不返回空..)

        【讨论】:

        • 你能在你的刀片文件中分享屏幕截图吗?
        【解决方案4】:

        您可以尝试使用这个包https://www.hieule.info/products/laravel-active-version-3-released,它提供了帮助方法来检查当前路线是否符合您的条件。

        假设你的路由被命名为comments.indexcomments.my_comments

        <li class="{{ active_class(if_route('comments.*')) }}">
             <a href="#"><i class="fa fa-comment"></i> 
             <span>Comments</span></a>
        </li>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多