我的问题是关于在Laravel中嵌套布局。我试图这样做,如下所示,这在大多数情况下有效但在其他情况下会产生不必要的结果。
\\ MasterLayout
--code for header, navbar, etc.
@yield('content)
@yield('scripts)
\\ SubLayout
@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
\\浏览
@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');
}
在许多情况下,这种方法效果很好,但存在一些问题。例如,我不能简单地在视图中需要的SubLayout中包含php文件。这些包括必须进入他们正在使用它们的文件,以获得对其功能的访问。此外,将<div></div>
标记直接放在@yield之外有时会产生与将它们直接放在@yield指向的@section内不同的效果。此外,当页面工作时,我得到了一些奇怪的警告信息,例如我已经多次声明DOCTYPE或者根本没有,当时我都不知道。因此,虽然嵌套方法似乎有效,但它有点笨拙,我不相信它代表了最佳实践。
因此,我对社区的问题是这样的:我建议的嵌套布局方法是否合适(可能有一些解决我遇到的问题的注意事项)或者它是否表现出一些基本问题/混淆?
我在这里找到了一个相关的Stack Q&amp; A Laravel multiple nested views但是在那里引用的nest()函数不再在Laravel文档的更新版本中讨论过了(我错过了它) ?),所以我想知道它是否仍然需要。