2017-08-16 4 views
0

ヘッダーが含まれているレイアウトを持っています。他の要素の内側にあるときのブレードテンプレートを含める方法

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

+ posts 
    - list.blade.php 

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

注:

+a folderある

マイviewsフォルダのような構造を有しています。

-master.blade.phpで、blade template file

通常で、CSS/JSファイルを宣言ナビゲーションバーとフッターブレードテンプレートが含まれています。

しかし、div#homeの中のnavbar、この要素はnavbarとsliderを含んでいます。

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

したがって、私はmaster.blade.phpに挿入するためにnavbarを分割できません。それはスライドが含まれているため@include('partials.navbar'):私は行を追加しない

//add some js and css. 
<body> 

    @yield('content') 

    @include('partials.footer') 

</body> 

:あなたのようなmaster.blade.phpを見ることができます。

一時的な解決方法は、index.blade.phpに追加することです。

しかし、問題は次のとおりです。子ページがあります。@extends('layouts.master')です。しかしlayout.masterにはpartials.navbarが含まれていません。それは、ナビゲーションバーとフッタだけを必要とし、スライダは必要ありません。

HTMLファイルの構造を変更しないと、これを行う方法はありません。

答えて

1

ブレード・テンプレートに変数をPASできます

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

、その後、ナビゲーションバーにあなたはスライダーのみ表示されますそのようにその変数

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

をチェックすることができスライダ変数がtrueに設定されている

関連する問題