处理Laravel 4中的面包屑

时间:2016-07-07 12:44:36

标签: php laravel-4 breadcrumbs laravel-blade

我的页面上有简单的面包屑

<ul class="breadcrumb"> 
<li> 
    <i class="glyphicon glyphicon-home"></i> 
         <a href="{{URL::to('/') }}">Home</a> 
    </li> 
    <?php $link = URL::to('/'); ?> 
    @for($i = 1; $i <= count(Request::segments()); $i++) 
        <li> 
            @if($i < count(Request::segments()) & $i > 0) 
                <?php $link .= "/" . Request::segment($i); ?> 
                    <a href="<?= $link ?>">{{Request::segment($i)}}</a> 
            @else {{Request::segment($i)}} 
            @endif 
</li> 
    @endfor 
</ul>

这会产生像Home / Page / etc

这样的面包屑

这里的问题是我的路由器中的视图就像这样

Route::get('/users/profile', ['uses' => 'UsersController@viewProfile', 'before' => 'auth|csrf']);
Route::get ('/admin/pages/edit/{pageId}', ['uses' => 'AdminController@pageEdit', 'before' => 'admin']);

因此,两条路线的面包屑都是

Home / Users / Profile
Home / Admin / Pages / Edit / 1

这里面包屑中的中间路径不存在/ Users // Edit / ..这里有很多页面。有没有办法避免这种情况?

编辑:

我知道我可以更改路由器中的路由,但我不想要。所以需要一些其他方法来实现这一目标。

1 个答案:

答案 0 :(得分:0)

您可以use this,然后添加条件(第24行):

@if ($title != 'Users' && $title != 'Edit')
    <a href="{{ $bread }}"><span>{{ $title }}</span></a>
@endif

或者,如果您希望避免使用大量这些值,那么您可以编写array并使用相同的方法进行检查。