Laravel 5中布局内的嵌套布局

Laravel 5中布局内的嵌套布局,laravel,laravel-5,laravel-5.2,Laravel,Laravel 5,Laravel 5.2,我的问题是关于Laravel中的嵌套布局。我正试图这样做,如下所示,这在大多数情况下有效,但在其他情况下会产生不必要的结果 \\总图 --code for header, navbar, etc. @yield('content) @yield('scripts) \\次级布局 @extends('layouts.MasterLayout') @section('content') <div> @yield('sidebar') @y

我的问题是关于Laravel中的嵌套布局。我正试图这样做,如下所示,这在大多数情况下有效,但在其他情况下会产生不必要的结果

\\总图

--code for header, navbar, etc.

@yield('content)

@yield('scripts)
\\次级布局

@extends('layouts.MasterLayout')

@section('content')
    <div>
        @yield('sidebar')

        @yield('main')
    </div>
@endsection

@section('scripts')
    <script>scripts needed in all the relevant views</script>

    @yield('scripts.sub')
@endsection
这在很多情况下都很有效,但也存在一些问题。例如,我不能简单地在视图所需的子布局中包含php文件。这些include必须放入使用它们的文件中,才能访问它们的功能。此外,将
标记直接放置在@yield外部有时会产生与将它们直接放置在@yield指向的@section内部不同的效果。此外,在页面工作时,我收到一些奇怪的警告消息,例如我多次声明DOCTYPE或根本没有声明DOCTYPE,而据我所知,这两个消息都不是真的。因此,尽管嵌套方法似乎有效,但它有点笨拙,我不相信它代表了最佳实践

因此,我向社区提出的问题是:我建议的嵌套布局方法是否普遍适用(可能有一些针对我遇到的问题的警告),或者它是否表现出一些基本问题/混乱


我在这里找到了一个相关的堆栈问答:但是在最近版本的Laravel文档中不再讨论这里引用的nest()函数(我错过了吗?),所以我想知道是否仍然需要它。

您可以使用组件和插槽来实现它

关于最后一段,请注意:并非所有版本的文档中都存在某些内容,这并不意味着该内容已被删除(Laravel文档在某些方面可能会缺失)。但是,如Laravel类API所示,
nest
view方法仍然存在。因此,当有疑问时,API文档总是一个很好的地方可以查看。谢谢,这对他的帮助很大。因此,我想知道通过该函数使用多层嵌套是否是这里的最佳实践,或者是我建议的让布局扩展其他布局的方法。如果您需要超过1层嵌套,我将使用@include作为2层嵌套。现在还可以将变量传递到包含的视图?用includeviews侧边栏来代替扩展,这样就可以摆脱困扰您的扩展了
@extends('layouts.SubLayout')
--some code

@section('sidebar')
    --sidebar code
@endsection

@section('main')
    --main code
@endsection

@section('scripts.sub')
    <script>scripts only needed in this view</script>
@endsection
public function start()
{
    return view('createproject/start');
}