2016-11-29 42 views
0

問題是我的about.blade.php文件在佈局中顯示,但我的navbar.blade.php沒有。使用Laravel Framework - 我的layout.blade.php文件中只有1個yield正在工作

我能猜到的最好的(我是Laravel新手),是我的控制器返回about.blade.php,它擴展了layout.blade.php,但由於某種原因,layout.blade並不知道navbar。 blade.php即使navbar.blade.php擴展了layout.blade.php。

layout.blade.php

<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
    <body> 

     @yield('navbar') 

     <div class="container"> 

      @yield('content') 

     </div> 

    </body> 
</html> 

navbar.blade.php

@extends('layout') 
@section('navbar') 

<header> 
    <nav class="nav navbar-default navbar-fixed-top"> 
    <div class="container-fluid"> 
     <div class="navbar-header"> 
     <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse-1" aria-expanded="false"> 
      <span class="sr-only">Toggle Navigation</span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
     </button> 
     <a class="navbar-brand" href="/?page=main">SWMHS</a> 
     </div> 

     <div class="collapse navbar-collapse" id="navbar-collapse-1"> 
     <ul class="nav navbar-nav"> 
      <li><a href="/">Main</a></li> 
      <li><a href="/about">About</a></li> 
     </ul> 
     </div> 

    </div> 
    </nav> 
</header> 

@endsection 

about.blade.php

@extends('layout') 

@section('content') 

    <h1 class="text-center">This is the About Page</h1> 

@endsection 
+0

什麼結構o你的資源/意見?順便說一下,我會建議你將導航欄放入局部區域,並將其包含在佈局中。 – GabMic

回答

4

yield指令不工作的方式,你重新思考它。如果該部分已添加到刀片模板,它將僅顯示內容。

您需要添加一個navbar部分,然後將其複製並粘貼到您希望顯示的每個視圖中。另一種方法是創建部分導航欄模板和@include()導航欄模板。

這是應該完成的方式,假設您的navbar模板不會更改。

layout.blade.php

<!DOCTYPE html> 
<html> 
    <head> 
    </head> 
    <body> 

     @include('partials.navbar') 

     <div class="container"> 
      @yield('content') 
     </div> 

    </body> 
</html> 

諧音/ navbar.blade.php

<header> 
    <nav class="nav navbar-default navbar-fixed-top"> 
     <div class="container-fluid"> 
      <div class="navbar-header"> 
       <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse-1" aria-expanded="false"> 
        <span class="sr-only">Toggle Navigation</span> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
        <span class="icon-bar"></span> 
       </button> 
       <a class="navbar-brand" href="/?page=main">SWMHS</a> 
      </div> 

      <div class="collapse navbar-collapse" id="navbar-collapse-1"> 
       <ul class="nav navbar-nav"> 
        <li><a href="/">Main</a></li> 
        <li><a href="/about">About</a></li> 
       </ul> 
      </div> 

     </div> 
    </nav> 
</header> 

about.blade.php

@extends('layout') 

@section('content') 

<h1 class="text-center">This is the About Page</h1> 

@endsection 
+0

這樣做!謝謝你的建議。我將navbar.blade.php移動到resources/views/partials目錄中,並在佈局中使用@include('partials.navbar')。它現在在每個頁面上顯示導航欄。非常感謝。 –

相關問題