Laravel 5 Footer如何避免创建大量模板

时间:2017-02-15 09:39:50

标签: php laravel blade

我正在Laravel 5中创建一个应用程序,其中一个页脚将会有很多与部分相关的链接。我的想法是,当我点击一个部分的页脚链接时,它会将我重定向到一个模板页面,左边是该页脚中的所有链接,右边是链接的内容我点击。

例如,在这张图片上,我点击了页脚中的链接A,它显示了左侧第1节(带有链接A下划线)的所有链接,右侧显示了链接A的内容。 enter image description here

基本上我想知道是否有一种很好的方法可以在不创建50个不同模板的情况下(页脚的每个链接一个)。

2 个答案:

答案 0 :(得分:3)

您只需使用3个模板即可:

main.blade.php:

<html>
<body>
@include('sidebar')
..
@yield('content')
..
@include('footer')
</body>
</html>

sidebar.blade.php

<div class="sidebar">
@foreach($sidebar_links as $link)
   // print $link
@endforeach 
</div>

footer.blade.php

<div class="footer">
<a href="{{ route('getMenu', 'section A') }}">Section A</a>
<a href="{{ route('getMenu', 'section B') }}">Section B</a>
</div>

控制器操作:

public function getMenu($section) {
  $sidebar_links = // Get sidebar links of the section which is clicked from the bottom links
   return ('main', compact('sidebar_links'))
}

注意:我没有对此进行测试,但它应该为您提供基本视图。

答案 1 :(得分:0)

您可以使用Request :: segment()来查找活动链接。例如,链接A的链接= / link / a然后我们可以说Request :: segment(2)== a。您可以使用它来显示活动链接。

<a href="/link/a" class="@if(Request::segment(2) == 'a') active @endif">Link A</a>
<a href="/link/b" class="@if(Request::segment(2) == 'b') active @endif">Link B</a>
<a href="/link/c" class="@if(Request::segment(2) == 'c') active @endif">Link C</a>