📜  @parent, @include, @show Blade in laravel - PHP (1)

📅  最后修改于: 2023-12-03 14:38:56.386000             🧑  作者: Mango

Blade模板引擎中的指令

在Laravel中,Blade是一个优秀的模板引擎,具有简单、优雅和方便的特点。而Blade中的指令,如@parent@include@show,可以让我们更轻松地编写模板。

@parent指令

Blade中的@parent指令,通常与模板继承结合使用。当一个子视图想要继承自己的父视图时,可以使用@parent指令来显示父视图的内容。

例如,父视图parent.blade.php中有以下内容:

<!DOCTYPE html>
<html>
    <head>
        <title>@yield('title')</title>
    </head>
    <body>
        <div class="container">
            @yield('content')
        </div>

        @yield('footer')
    </body>
</html>

而子视图child.blade.php中可以通过@extends指令继承父视图,使用@section指令来填充内容,使用@parent指令来显示父视图的内容:

@extends('parent')

@section('title', 'Child View')

@section('content')
    <p>This is the child view content.</p>

    @parent
@endsection

@section('footer')
    <script>
        console.log('This is the footer of child view.');
    </script>
@endsection

其中,@section指令用于定义一个视图块,@endsection指令用于结束定义。在@section@endsection中间的内容,将被填充到相应的视图块中。而@yield指令则用于显示一个视图块的内容。在子视图中,使用@parent指令来显示父视图的内容,即@yield指令的占位符。

@include指令

Blade中的@include指令,可以让我们在视图中包含其他视图。

例如,我们可以在视图中使用@include指令来包含一个公共的页头和页脚:

@include('partials.header')

<div class="container">
    <p>This is the content of the view.</p>
</div>

@include('partials.footer')

其中,partials.headerpartials.footer是其他视图文件的名称。在Blade中,可以将视图文件存放在resources/views目录中的任意子目录中,使用.来表示目录分隔符。

我们也可以将传递给包含视图的参数,例如:

@include('partials.message', ['message' => 'This is a message.'])
@show指令

Blade中的@show指令,可以在视图块中的内容之后,显示相应的内容。

例如:

@extends('parent')

@section('content')
    <p>This is the content of the child view.</p>

    @show
@endsection

@section('footer')
    <script>
        console.log('This is the footer of child view.');
    </script>
@endsection

其中,由于在@section('content')@section('footer')中使用了@show指令,所以在子视图中声明的内容会显示在相应的视图块之后。如果视图块中没有相应的内容,则@show指令不会显示任何内容。

以上是Blade中的一些常用指令的介绍及使用方法。Blade中还有更多的指令和功能,可以在Laravel官方文档中详细了解。