Laravel 5中布局内的嵌套布局
我的问题是关于Laravel中的嵌套布局。我正试图这样做,如下所示,这在大多数情况下有效,但在其他情况下会产生不必要的结果 \\总图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
--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');
}