Laravel — ручной рендеринг хлебных крошек

Я использую Laravel 5.2 и хочу использовать хлебные крошки от davejamesmiller. Я установил маршрут Route::resource('admin/users', '\Easyk\Controllers\Admin\UsersController'); и в соответствии с документацией создал файл Http/breadcrumbs.php, содержимое которого:

Breadcrumbs::register('admin.users.index', function ($breadcrumbs) {
    $breadcrumbs->push('Users', route('admin.users.index'));
});

Когда я пытаюсь использовать шаблон {!! Breadcrumbs::render() !!}, он будет отображаться без проблем. Но я хотел бы сделать это вручную. Согласно документации я создал файл config/breadcrumbs.php с содержимым:

return [
    'view' => 'partials/_breadcrumbs',
];

но когда я пытаюсь его отобразить, переменной $breadcrumbs нет:

@if(!empty($breadcrumbs))
    <ol class="breadcrumb">
    <li>{!! link_to_route('main', 'Home') !!}</li>
    @foreach($breadcrumbs as $bread)
        @if(isset($bread['url']))
            <li>{!! link_to($bread['url'], $bread['name']) !!}</li>
        @else
            <li>{!! $bread['name'] !!}</li>
        @endif
    @endforeach
    </ol>
@endif

У вас есть опыт, как получить переменную $breadcrumbs для представления, указанного в файле?


person Jaroslav Klimčík    schedule 15.12.2016    source источник


Ответы (1)


Я уже решил это. В макете мне нужно {!! Breadcrumbs::renderIfExists() !!}, а затем в partials/_breadcrumbs я получу переменную $breadcrumbs. Если я правильно понял, то метод renderIfExists() работает как включение.

Также в config/breadcrumbs.php должны стоять точки:

return [
    'view' => 'partials._breadcrumbs',
];
person Jaroslav Klimčík    schedule 15.12.2016