Laravel 8 引入子视图
Blade 的 @include
指令可用于从另一个视图包含一个 Blade 视图。子视图将继承父视图中所有可用的变量:
<div>
@include('shared.errors')
<form>
<!-- Form Contents -->
</form>
</div>
除了子视图继承父视图中所有可用的数据,您亦可通过数组将数据传递给子视图:
@include('view.name', ['some' => 'data'])
如果您尝试 @include
一个不存在的视图,Laravel 将会报错。如果您想要包含一个不确定是否存在的视图时,您可以使用 @includeIf
指令:
@includeIf('view.name', ['some' => 'data'])
如果想要在某个表达式的值计算为 true
时 @include
一个视图,您可以使用 @includeWhen
指令:
@includeWhen($boolean, 'view.name', ['some' => 'data'])
如果想要在某个表达式的值计算为 true
时 @include
一个视图,您可以使用 @includeWhen
指令:
@includeWhen($boolean, 'view.name', ['some' => 'data'])
如果想要在某个表达式的值计算为 false
时 @include
一个视图,您可以使用 @includeUnless
指令:
@includeUnless($boolean, 'view.name', ['some' => 'data'])
要包含指定的视图数组中存在的第一个视图,可以使用 includeFirst
指令:
@includeFirst(['custom.admin', 'admin'], ['some' => 'data'])
注意:您应该避免在 Blade 视图中使用
__DIR__
和__FILE__
常量,因为它们会引用本地已经缓存了的,编译过了的视图的路径。