阅读(3502) (9)

Laravel 8 引入子视图

2021-06-28 16:48:20 更新

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__ 常量,因为它们会引用本地已经缓存了的,编译过了的视图的路径。