在我的网站上,我有一个导航栏。以下是其中的一个示例/部分:
<li><a class="tier1Nav2" id="tier1Nav2Item1" href="{{ route('browse.results', ['query=graphic','orderBy=date']) }}">Graphic Design</a>
<ul class="dropDownNav" id="dropDownNav1">
<div class="rightSideDrop"><div id="dropImg1" class="dropImg">{!! Html::image('images/nav/placeholder.png'); !!}</div></div>
<li class="ddNavItem"><a id="ddNav1Item1" href="{{ route('browse.results', ['query=interface','orderBy=date']) }}">Interface Design</a></li>
<li class="ddNavItem"><a id="ddNav1Item2" href="{{ route('browse.results', ['query=web','orderBy=date']) }}">Web Layouts</a></li>
<li class="ddNavItem"><a id="ddNav1Item3" href="{{ route('browse.results', ['query=illustration','orderBy=date']) }}">Illustrations</a></li>
<li class="ddNavItem"><a id="ddNav1Item4" href="{{ route('browse.results', ['query=brush','orderBy=date']) }}">Brushes</a></li>
<li class="ddNavItem"><a id="ddNav1Item5" href="{{ route('browse.results', ['query=typography','orderBy=date']) }}">Typography</a></li>
<li class="ddNavItem"><a id="ddNav1Item6" href="{{ route('browse.results', ['query=identity','orderBy=date']) }}">Identity & Branding</a></li>
<li class="ddNavItem"><a id="ddNav1Item7" href="{{ route('browse.results', ['query=vector','orderBy=date']) }}">Vector Art</a></li>
</ul>
</li>
这些链接将路由到控制器BrowseController.php
。
但是,有一个类似的控制器,FullViewBrowseController.php
。
当用户在浏览页面上时,他可以切换到该页面的fullview版本。这也将设置一个cookie(反之亦然)。
$(document).on('click','.wall-of-thumbs-link', function(){
setCookie("commendme_browse_view", "thumb_view", 365);
});
$(document).on('click','.full-view-link', function(){
setCookie("commendme_browse_view", "full_view", 365);
});
我希望这个导航栏的链接根据此cookie的值路由到不同的控制器。换句话说,默认情况下,我希望链接显示常规浏览控制器,以及cookie是否设置为"thumb_view"
。像之前一样,例如:
<li class="ddNavItem"><a id="ddNav1Item1" href="{{ route('browse.results', ['query=interface','orderBy=date']) }}">Interface Design</a></li>
但是,如果Cookie设置为"fullview_view"
,我希望这些链接通过FullViewBrowseController.php
进行路由,如下所示:
<li class="ddNavItem"><a id="ddNav1Item1" href="{{ route('browse.fullview.results', ['query=interface','orderBy=date']) }}">Interface Design</a></li>
导航栏中总共有大约24个链接,所以我不确定哪种解决方案最好。
一个选项是拥有2个导航栏,一个带有全景视图链接,另一个带有常规链接,两者都是隐藏的,并使用.show()根据cookie的值取消隐藏相应的导航栏。但我觉得这不是很优雅。
有什么建议吗?
答案 0 :(得分:0)
根据您的问题,您希望根据Cookie值显示不同的路线。这是快速解决方案。
@if(isset($_COOKIE['commendme_browse_view']) and $_COOKIE['commendme_browse_view'] == 'full_view')
<li class="ddNavItem"><a id="ddNav1Item1" href="{{ route('browse.fullview.results', ['query=interface','orderBy=date']) }}">Interface Design</a></li>
// More Links
@else
<li class="ddNavItem"><a id="ddNav1Item1" href="{{ route('browse.results', ['query=interface','orderBy=date']) }}">Interface Design</a></li>
// More Links
@endif
此代码默认显示thumb_view
,如果用户已选择full_view
,则会显示完整视图。
让我知道它是否有效!
更新:使用此方法的唯一缺点是,如果要从Navbar中删除某些链接,则必须从这两个部分中删除它们。编辑链接也是如此。