【问题标题】:How to include blade template when it inside another element如何在另一个元素中包含刀片模板
【发布时间】:2017-08-17 05:23:40
【问题描述】:

我有一个包含标题的布局,包括导航栏和滑块图像。

我的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 文件,包括导航栏和页脚刀片模板。

但是navbar里面有个div#home,这个元素包含navbar和slider。

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

所以,我无法拆分导航栏以插入master.blade.php。可以看到master.blade.phplike:

//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 文件结构的情况下做到这一点。

【问题讨论】:

    标签: laravel laravel-blade


    【解决方案1】:

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

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

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

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

    这样,只有当滑块变量设置为 true 时才会显示滑块

    【讨论】:

      猜你喜欢
      • 2014-02-07
      • 1970-01-01
      • 1970-01-01
      • 2012-08-15
      • 2020-11-21
      • 1970-01-01
      • 2019-09-23
      • 2016-04-10
      • 2015-11-13
      相关资源
      最近更新 更多