2017-01-02 83 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

不,我没有扩展布局。它是在另一个布局中包含的导航布局中。 –