用于多页的Laravel HREF技术

时间:2017-08-24 10:37:44

标签: laravel laravel-blade

<!-- BEGIN HEADER MENU -->
<div class="nav-collapse collapse navbar-collapse navbar-responsive-collapse">
    <ul class="nav navbar-nav">
        <li class="dropdown dropdown-fw dropdown-fw-disabled active open selected">
            <a href="javascript:;" class="text-uppercase"><i class="icon-home"></i> Home </a>
            <ul class="dropdown-menu dropdown-menu-fw">
                <li>
                    <a href="{{ url('picture/externalphotoviewer') }}"><i class="icon-bar-chart"></i> View Photo </a>
                </li>
                <li class="active">
                    <a href="{{ url('picture/about') }}"><i class="icon-bulb"></i> About </a>
                </li>
                <li>
                    <a href="{{ url('picture/contact') }}"> <i class="icon-graph"></i> Contact </a>
                </li>
            </ul>
        </li>
        <li class="dropdown dropdown-fw dropdown-fw-disabled">
            <a href="javascript:;" class="text-uppercase"><i class="icon-home"></i> Upload </a>
            <ul class="dropdown-menu dropdown-menu-fw">
                <li>
                    <a href="{{ url('photo/create') }}"><i class="icon-bar-chart"></i> Upload Photo </a>
                </li>
                <li>
                    <a href="{{ url('photo') }}"><i class="icon-bulb"></i> View Photo List </a>
                </li>
            </ul>
        </li>
    </ul>
</div>

我还是新手,但基本上,我有5页(查看照片,关于,联系,上传照片,查看照片列表)。目前,我想在所有5个页面中显示此HTML,以便将其标准化。例如,如果我将一个页面中的“picture / about”更改为“photograph / about”,则需要反映这5个页面。随着页数的增加,这变得更加复杂。

Laravel有什么方法或技巧可以解决这个问题吗?谢谢。

2 个答案:

答案 0 :(得分:0)

创建一个模板文件,例如Laravel在app.blade.php目录中提供resources/template/,使用extendssections等进行设计,请阅读Laravel Documentation for Templates

答案 1 :(得分:0)

您可以使用partials。

如果您的问题是将活动类添加到正确的链接,那么您只需使用request()->is()来检查当前网址:

<li class="{{ request()->is('picture/externalphotoviewer') ? 'active' : '' }}">
    <a href="{{ url('picture/externalphotoviewer') }}">
        <i class="icon-bar-chart"></i> View Photo </a>
</li>
<li class="{{ request()->is('picture/about') ? 'active' : '' }}">
    <a href="{{ url('picture/about') }}">
        <i class="icon-bulb"></i> About </a>
</li>
<li class="{{ request()->is('picture/contact') ? 'active' : '' }}">
    <a href="{{ url('picture/contact') }}">
        <i class="icon-graph"></i> Contact </a>
</li>

只需在resources/views目录中创建一个刀片文件,然后使用@include,例如

<强> reasources /视图/分音/ header.blade.php

<div class="nav-collapse collapse navbar-collapse navbar-responsive-collapse">
    <ul class="nav navbar-nav">
        <li class="dropdown dropdown-fw dropdown-fw-disabled active open selected">
            <a href="javascript:;" class="text-uppercase">
                <i class="icon-home"></i> Home </a>
            <ul class="dropdown-menu dropdown-menu-fw">
                <li class="{{ request()->is('picture/externalphotoviewer') ? 'active' : '' }}">
                    <a href="{{ url('picture/externalphotoviewer') }}">
                        <i class="icon-bar-chart"></i> View Photo </a>
                </li>
                <li class="{{ request()->is('picture/about') ? 'active' : '' }}">
                    <a href="{{ url('picture/about') }}">
                        <i class="icon-bulb"></i> About </a>
                </li>
                <li class="{{ request()->is('picture/contact') ? 'active' : '' }}">
                    <a href="{{ url('picture/contact') }}">
                        <i class="icon-graph"></i> Contact </a>
                </li>
            </ul>
        </li>
        <li class="dropdown dropdown-fw dropdown-fw-disabled">
            <a href="javascript:;" class="text-uppercase">
                <i class="icon-home"></i> Upload </a>
            <ul class="dropdown-menu dropdown-menu-fw">
                <li>
                    <a href="{{ url('photo/create') }}">
                        <i class="icon-bar-chart"></i> Upload Photo </a>
                </li>
                <li>
                    <a href="{{ url('photo') }}">
                        <i class="icon-bulb"></i> View Photo List </a>
                </li>
            </ul>
        </li>
    </ul>
</div>

然后将其他刀片文件中的标题代码替换为:

@include('partials.header')

<强> NB

如果您更改标题的位置,则还需要更新@include,例如。

e.g。 resources/views/layouts/main/header.blade.php将是@include('layouts.main.header')

希望这有帮助!

相关问题