2016-06-22 2 views
0

Я пытаюсь реализовать динамические панировочные сухари в laravel со ссылками. Я успешно делаю панировочные сундуки, но без ссылок, следуя коду.Laravel динамические панировочные сухари со ссылками

<ol class="breadcrumb"> 
    <li><a href="#"><i class="fa fa-dashboard"></i>Marketplace</a></li> 
    @foreach(Request::segments() as $segment) 
    <li> 
     <a href="#">{{$segment}}</a> 
    </li> 
    @endforeach 
</ol> 

Но теперь я сталкиваюсь с проблемой с URL-адресами. Я получаю текущий URL-адрес маршрута со всеми детекторами. Может кто-то, пожалуйста, помогите мне, как я могу добавить ссылки на панировочные сухари?

Спасибо.

+0

Добавьте URL образец URL и генерируется хлебных крошек, поэтому мы можем помочь вам соответственно – Qazi

+1

рекомендую https://github.com/davejamesmiller/laravel-breadcrumbs – Jeff

+0

@Qazi Url будет что-то вроде этого: http://marketplace.dev/admin/types/create И панировочные сухари должны быть похожими на admin> types> create –

ответ

0

Добавить слэш/berfor любую ссылку, чтобы добавить decendents только Domaine имя как тот <a href="/YourLink" ></a>

3

Если я правильно понял ваш вопрос правильно, нужно просто заполнить URL ссылки. Это непроверено, но я думаю, что он должен работать.

<ol class="breadcrumb"> 
    <li><a href="#"><i class="fa fa-dashboard"></i>Marketplace</a></li> 
    <?php $segments = ''; ?> 
    @foreach(Request::segments() as $segment) 
     <?php $segments .= '/'.$segment; ?> 
     <li> 
      <a href="{{ $segments }}">{{$segment}}</a> 
     </li> 
    @endforeach 
</ol> 
+0

Спасибо за ваш ответ. Я уже пробовал это, но он создает проблемы с другими ссылками и с пространствами имен. Я думаю, что я должен пойти с какой-то библиотекой, а не с этим. В любом случае спасибо за вашу помощь. :) –

1

Я не уверен, что у вас уже есть решение для этого, но я выяснил, как это сделать в моем проекте. Это может пригодиться для вашей реализации.

В итоге я либо добавил весь URL-адрес ссылки, либо только сегмент, какой из них нежелателен, поэтому, используя срез массива, я начинаю срезать из индекса 0 в массиве и только срез до текущей итерации цикл, затем размотайте массив в строку, а затем используйте URL :: для создания ссылки.

<ol class="breadcrumb"> 
    <li> 
     <i class="fa fa-home"></i> 
     <a href="{{route('admin.index')}}">HOME</a> 
    </li> 

    @for($i = 2; $i <= count(Request::segments()); $i++) 
     <li> 
     <a href="{{ URL::to(implode('/', array_slice(Request::segments(), 0 ,$i, true)))}}"> 
      {{strtoupper(Request::segment($i))}} 
     </a> 
     </li> 
    @endfor 
</ol> 

Как вы заметили, я только начинаю свою итерацию из 2 ($ я = 2) как мое приложение базы URL начинается/администратора и я вручную поместить свой домашний адрес в первой навигационной цепочке.

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

+0

Да, я закончил с библиотекой, которая много помогает и управляет многими вещами сама по себе. Но ваши решения, похоже, я пытаюсь сделать. Я обязательно попробую это. Спасибо за вашу помощь. :) –

+0

Счастливые вы могли бы найти это полезным – Eamon

0

Это работает для меня, пытался в Laravel 5.4 *

Требования для этого кода, чтобы работать безотказно: Все URL, должны иметь иерархический шаблон

Ниже код будет создать крошку для каждого пути -

.
<a href="/">Home</a> >     
<?php $link = "" ?> 
@for($i = 1; $i <= count(Request::segments()); $i++) 
    @if($i < count(Request::segments()) & $i > 0) 
    <?php $link .= "/" . Request::segment($i); ?> 
    <a href="<?= $link ?>">{{ ucwords(str_replace('-',' ',Request::segment($i)))}}</a> > 
    @else {{ucwords(str_replace('-',' ',Request::segment($i)))}} 
    @endif 
@endfor 

Иерархическая для URL your_site.com/abc/lmn/xyz

Выход - Home>abc>lmn> хуг

Смежные вопросы