Laravel Blade @yield 未显示 @section
Laravel Blade @yield is not displaying the @section
我的文本显示在两个位置(一个用于桌面,一个用于移动)。因此,不必每次都将文本放在两个位置,我认为我可以制作一个部分并使用 @yield
在每个位置显示文本。我没有收到任何错误,但内容并没有像我预期的那样写到 dom。
这是 blade 模板:
<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
是我误解了它的工作原理,还是我做错了?
我认为您没有扩展布局。当您使用 @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
希望这有效!
@yield
仅在扩展布局时有效。
最好将 narbar-dropdown
部分的内容放在另一个文件中,然后使用 include。
例如在 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')
希望对您有所帮助!
我的文本显示在两个位置(一个用于桌面,一个用于移动)。因此,不必每次都将文本放在两个位置,我认为我可以制作一个部分并使用 @yield
在每个位置显示文本。我没有收到任何错误,但内容并没有像我预期的那样写到 dom。
这是 blade 模板:
<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
是我误解了它的工作原理,还是我做错了?
我认为您没有扩展布局。当您使用 @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
希望这有效!
@yield
仅在扩展布局时有效。
最好将 narbar-dropdown
部分的内容放在另一个文件中,然后使用 include。
例如在 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')
希望对您有所帮助!