2017-02-15 5 views
-1

Я создаю приложение в Laravel 5, с нижним колонтитулом, в котором будет много ссылок с разделами. Идея состоит в том, что когда я нажимаю ссылку нижнего колонтитула секции, она перенаправляет меня на страницу шаблона, где слева находятся все ссылки в нижнем колонтитуле, а справа - содержимое ссылки I щелкнул.Laravel 5 Footer Как избежать создания большого количества шаблонов

Например, на этом рисунке я нажимаю на ссылку A в нижнем колонтитуле, и он показывает все ссылки из раздела 1 (с подчеркнутой ссылкой A) слева, а справа показывает содержимое ссылки A enter image description here

В принципе, я хочу знать, есть ли хороший способ сделать это, не создавая 50 разных шаблонов (по одному для каждой ссылки нижнего колонтитула).

+1

Покажите, что вы пробовали до сих пор. Это не сайт, на котором вы разрабатываете свой проект. Посмотрите ваш код, затем SO coder попытается решить конкретную проблему. –

+0

Это единственное, о чем я могу думать, это создать шаблон для каждой ссылки нижнего колонтитула. Это легко, но мне было интересно, есть ли «лучший» способ сделать это, не создавая 50 шаблонов (по одному для каждой ссылки нижнего колонтитула). –

+1

Вы можете сделать это с помощью частичного клинка, а затем вы можете динамически изменять содержимое на частичном изображении. –

ответ

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')) 
} 

Примечание: Я не проверял это, но он должен дать вам основной вид.

0

Вы можете использовать Request :: segment() для поиска активной ссылки. Например, ссылка Link 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>