2017-01-02 122 views
0

我的文本顯示在兩個位置(一個用於桌面,一個用於移動)。因此,不必每次都將文本放在兩個位置,我認爲我可以製作一個部分並使用@yield在每個位置顯示文本。我沒有得到任何錯誤,但是內容並沒有像我期待的那樣寫出來。Laravel Blade @yield未顯示@section

這裏是刀片模板:

<nav class="blue"> 
    <div class="nav-wrapper"> 
     <div class="container"> 
      <ul class="side-nav" id="mobile-side-nav"> 
       @yield('navbar-dropdown') 
      </ul> 
     </div> 
    </div> 
</nav> 
<ul id="nav-dropdown" class="dropdown-content"> 
    @yield('navbar-dropdown') 
</ul> 

{{-- List of items to place in the ul's --}} 
@section('navbar-dropdown') 
    <li><a class="blue-text waves-effect" href="#!">Create Project</a></li> 
    <li><a class="blue-text waves-effect" href="#!">Manage Projects</a></li> 
    <li class="divider"></li> 
    <li><a class="blue-text waves-effect" href="#!">Settings</a></li> 
    <li><a class="blue-text waves-effect" href="{{ url('auth/logout') }}">Logout</a></li> 
    <li class="divider"></li> 
    <li><a class="blue-text waves-effect" href="#!">Help</a></li> 
    <li><a class="blue-text waves-effect" href="#!">Report a Problem</a></li> 
@endsection 

我誤解是如何工作的,還是我只是做錯了?

回答

1

@yield僅適用於擴展布局。

narbar-dropdown部分的內容放在另一個文件中,然後使用include將會好得多。

E.g.在resources/views/partials/navbar-dropdown.blade.php創建一個文件,並添加:

<li><a class="blue-text waves-effect" href="#!">Create Project</a></li> 
<li><a class="blue-text waves-effect" href="#!">Manage Projects</a></li> 
<li class="divider"></li> 
<li><a class="blue-text waves-effect" href="#!">Settings</a></li> 
<li><a class="blue-text waves-effect" href="{{ url('auth/logout') }}">Logout</a></li> 
<li class="divider"></li> 
<li><a class="blue-text waves-effect" href="#!">Help</a></li> 
<li><a class="blue-text waves-effect" href="#!">Report a Problem</a></li> 

,然後在你的佈局文件,你會改變:

@yield('navbar-dropdown') 

@include('partials/navbar-dropdown') 

希望這有助於!

+0

工作正常!我也不知道你可以使用'/'作爲分隔符,我一直使用'''分隔符。謝謝! –

+0

@GetOffMyLawn很高興能幫到你!是的,你可以使用:) –

0

我認爲你沒有擴展布局。當您使用@yield@section時,您需要在佈局中定義要擴展的@yield

這是你的模板文件(稱爲Laravel/resources/views/layouts/app.blade.php):

<html> 
<nav class="blue"> 
    <div class="nav-wrapper"> 
     <div class="container"> 
      <ul class="side-nav" id="mobile-side-nav"> 
       @yield('navbar-dropdown') 
      </ul> 
     </div> 
    </div> 
</nav> 
<ul id="nav-dropdown" class="dropdown-content"> 
    @yield('navbar-dropdown') 
</ul> 
</html> 

這是你的文件,將延長模板:

@extends('layouts.app') 

@section('navbar-dropdown') 
    <li><a class="blue-text waves-effect" href="#!">Create Project</a></li> 
    <li><a class="blue-text waves-effect" href="#!">Manage Projects</a></li> 
    <li class="divider"></li> 
    <li><a class="blue-text waves-effect" href="#!">Settings</a></li> 
    <li><a class="blue-text waves-effect" href="{{ url('auth/logout') }}">Logout</a></li> 
    <li class="divider"></li> 
    <li><a class="blue-text waves-effect" href="#!">Help</a></li> 
    <li><a class="blue-text waves-effect" href="#!">Report a Problem</a></li> 
@endsection 

希望這個作品!

+0

不,我沒有擴展布局。它是在另一個佈局中包含的導航佈局中。 –