Laravel — Blade Template определяет разделы / включает

Есть ли способ, которым я не должен использовать несколько @include для вкладок для некоторых страниц.

Например я делаю что-то вроде этого

В разделе / ​​product-tab1.blade.php

<ul class="nav-tabs hidden-xs" role="tablist">
<li><a href="/something1" role="tab">Category Name 1</a></li>
<li class="active"><a href="/something2">Category Name 2</a></li>
</ul>

В разделе / ​​product-tab2.blade.php

<ul class="nav-tabs hidden-xs" role="tablist">
<li><a href="/something4" role="tab">Something Name 4</a></li>
<li class="active"><a href="/something5">Something  Name 5</a></li>
<li class="active"><a href="/something6">Something Name 6</a></li>
</ul>

В нечто1.blade.php я бы определил, как это показать вкладки:

 @include('product-tab1')

В файле Some4.blade.php отображаются вкладки:

 @include('product-tab2')

Также вы бы использовали оператор if в файле представления для определения class="active" или нет? Он получит определенную переменную от контроллера.

0

Решение

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

В идеале вы должны написать помощника для этого, но мы просто сделаем это с небольшим количеством логики в вашем представлении на данный момент. Просто перейдите к тегу, на который вы хотите установить активный класс, и введите следующее.

class="{{ Request::is('your/path') ? 'active' : '' }}"

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

Отличный ресурс для таких вещей, как Laracasts, вот соответствующее видео:

https://laracasts.com/lessons/active-states


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

1

Другие решения

Других решений пока нет …