在Laravel中为parent和subs创建活动类

时间:2017-11-29 21:51:54

标签: laravel laravel-5 laravel-blade

我有这样的菜单:

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

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

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

那我怎么能让这种情况发生呢?感谢

4 个答案:

答案 0 :(得分:1)

您可以在接受模式检查的is()对象上使用Request方法。例如<li class="{{ request()->is('comments*') ? 'active' : '' }}">。这意味着如果存在uri'comments'字样的某个地方,则会添加'active'类。当然,你可以更具体,你可以省略通配符。

答案 1 :(得分: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 :(得分:0)

使用if方法和if子句;

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

(检查网址,如果网址中有&#39; sample-url&#39;则返回class =&#34;有效&#34;,则不返回空...)

答案 3 :(得分:0)

您可以尝试使用此程序包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>