我的布局包含标题,包括导航栏和滑块图片。
我的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文件的更改结构,有任何方法可以做到这一点。
答案 0 :(得分:1)
您可以将变量传递给刀片模板:
@include('partials.navbar', ['slider' => true])
然后在导航栏中可以检查该变量
@if(isset($slider) && $slider === true)
<!-- slider start -->
@yield('slider_images')
<!-- slider end -->
@endif
以这种方式,仅当滑块变量设置为true时才会显示滑块