【问题标题】:Laravel blade templating yield not workingLaravel刀片模板产量不起作用
【发布时间】:2018-05-28 07:31:04
【问题描述】:

我有一个 layouts/app.blade.php 视图,我在其中生成了一个内容部分。

布局/app.blade.php

@yield('content')

adminpanel/adminpanel.blade.php

@extends('layouts.app')

@section('content')
    <div id="wrapper">
        <div id="sidebar-wrapper">
            @yield('sidebar')
        </div>

        <div id="page-content-wrapper">
            <div class="container-fluid">
                @yield('page-content')
            </div>
        </div>
    </div>
@endsection

管理面板/sidebar.blade.php

@extends('adminpanel.adminpanel')

@section('sidebar')
    <ul class="sidebar-nav">
        <li class="sidebar-brand">
            <a href="#">
                Profile
            </a>
        </li>
        <li>
            <a href="#">Dashboard</a>
        </li>
        <li>
            <a href="#">News</a>
        </li>
    </ul>
@endsection

我在这里做错了吗?

当我在adminpanel/adminpanel.blade.php 视图中输入内容时,它可以工作,但部分的产生不起作用。

【问题讨论】:

  • 你在初始化/渲染哪个视图?
  • 在我的控制器中我做return view('adminpanel/adminpanel');
  • 您是否将adminpanel.sidebar 作为来自控制器的视图返回?因为这将是您必须做的,因为侧边栏模板扩展了管理面板模板......另一个模板不是“包括”侧边栏,它不是“部分”......所以你有这种倒退管理面板到侧边栏
  • @lagbox 不,我不会返回 adminpanel.sidebar 我会返回 adminpanel.adminpanel。侧边栏只是或应该是管理面板的一部分。我可能会在多个页面上返回侧边栏,我不想在每个视图上都构建侧边栏。
  • 当您加载adminpanel.adminpanel 时,侧边栏实际上并没有在任何地方加载或引用。您需要以某种方式将其包含在管理面板视图中

标签: php laravel laravel-5 blade


【解决方案1】:

如果您要返回“管理面板/管理面板”,那么您必须包含管理面板中的侧边栏,而不是为您没有内容的内容“屈服”。

@include('adminpanel.sidebar') 

而不是

@yield('page-content')

然后在您的侧边栏中删除所有刀片指令,因为它们不再需要。

<ul class="sidebar-nav">
    <li class="sidebar-brand">
        <a href="#">
            Profile
        </a>
    </li>
    <li>
        <a href="#">Dashboard</a>
    </li>
    <li>
        <a href="#">News</a>
    </li>
</ul>

【讨论】:

  • 也可以写@include('adminpanel.sidebar');
  • 当然,这更像刀片式
【解决方案2】:

尝试包含 adminpanel/adminpanel.blade.php

@extends('layouts.app')

@section('content')
    <div id="wrapper">
        <div id="sidebar-wrapper">
            @include('adminpanel.sidebar')
        </div>

        <div id="page-content-wrapper">
            <div class="container-fluid">
                @yield('page-content')
            </div>
        </div>
    </div>
@endsection

【讨论】:

    猜你喜欢
    • 2014-11-15
    • 2016-03-11
    • 2013-06-04
    • 1970-01-01
    • 2013-02-03
    • 2014-04-24
    • 2019-01-31
    • 2017-07-31
    • 2019-06-26
    相关资源
    最近更新 更多