如何在其他元素中包含刀片模板

时间:2017-08-16 19:13:08

标签: laravel laravel-blade

我的布局包含标题,包括导航栏和滑块图片。

我的views文件夹的结构如下:

+ layouts
   - index.blade.php
   - master.blade.php

+ posts
   - list.blade.php

+ partials
   - navbar.blade.php
   - footer.blade.php

注意:

+a folder

-blade template file

通常,在master.blade.php声明css / js文件中,包含导航栏和页脚刀片模板。

但是div#home内的导航栏,此元素包含导航栏和滑块。

<section id="home">
    @include('partials.navbar')
    <!-- slider start -->
    @yield('slider_images')
    <!-- slider end -->
</section>

因此,我无法拆分导航栏以插入master.blade.php。您可以看到master.blade.php之类的:

//add some js and css.
<body>

  @yield('content')

  @include('partials.footer')

</body>

我不添加行:@include('partials.navbar'),因为它包含幻灯片。

临时解决方案是将其添加到index.blade.php

但问题是:我有一个子页面,@extends('layouts.master')。但是layout.master没有包含partials.navbar。它只需要导航栏和页脚,不需要滑块。

如果没有HTML文件的更改结构,有任何方法可以做到这一点。

1 个答案:

答案 0 :(得分:1)

您可以将变量传递给刀片模板:

@include('partials.navbar', ['slider' => true])

然后在导航栏中可以检查该变量

@if(isset($slider) && $slider === true)
    <!-- slider start -->
    @yield('slider_images')
    <!-- slider end -->
@endif

以这种方式,仅当滑块变量设置为true时才会显示滑块