설치
composer require davejamesmiller/laravel-breadcrumbs
CODE
config/app.php 에 ServiceProvier 와 Facade alias 등록
'providers' => [
// ...
'DaveJamesMiller\Breadcrumbs\ServiceProvider',
],
'aliases' => [
// ...
'Breadcrumbs' => 'DaveJamesMiller\Breadcrumbs\Facade',
],
CODE
Breadcrumb 정의
app/Http/breadcrumbs.php
<?php
// Home
Breadcrumbs::register('home', function($breadcrumbs)
{
$breadcrumbs->push('Home', route('home'));
});
// Home > About
Breadcrumbs::register('about', function($breadcrumbs)
{
$breadcrumbs->parent('home');
$breadcrumbs->push('About', route('about'));
});
// Home > Blog
Breadcrumbs::register('blog', function($breadcrumbs)
{
$breadcrumbs->parent('home');
$breadcrumbs->push('Blog', route('blog'));
});
// Home > Blog > [Category]
Breadcrumbs::register('category', function($breadcrumbs, $category)
{
$breadcrumbs->parent('blog');
$breadcrumbs->push($category->title, route('category', $category->id));
});
// Home > Blog > [Category] > [Page]
Breadcrumbs::register('page', function($breadcrumbs, $page)
{
$breadcrumbs->parent('category', $page->category);
$breadcrumbs->push($page->title, route('page', $page->id));
});
CODE
push() 뒤에 들어가는 route 이름은 routes.php 에 named route 로 지정해야 함.
템플릿 정의
default bootstrap 3
php artisan vendor:publish
CODE
config/breadcrumbs.php
<?php
return [
'view' => 'breadcrumbs::bootstrap3',
];
CODE
BreadCrumb 출력
HTML 로 출력하므로 블레이드 사용시 encoding 하지 않는 {!! !!}를 사용해야 함.
{!! Breadcrumbs::render('home') !!}
{!! Breadcrumbs::render('category', $category) !!}
CODE
템플릿 변경
템플릿 파일을 resources 폴더내에 작성(Ex: resources/views/_partials/breadcrumbs.blade.php)
@if ($breadcrumbs)
@foreach ($breadcrumbs as $breadcrumb)
@if (!$breadcrumb->last)
<li><a href="{{{ $breadcrumb->url }}}">{{{ $breadcrumb->title }}}</a></li>
@else
<li class="active">{{{ $breadcrumb->title }}}</li>
@endif
@endforeach
@endif
CODE
에러 처리
[2015-05-26 09:18:09] local.ERROR: exception 'InvalidArgumentException' with message 'Route [home] not defined.' in myproj\vendor\laravel\framework\src\Illuminate\Routing\UrlGenerator.php:273
Stack trace:
CODE