📜  Laravel-刀片模板(1)

📅  最后修改于: 2023-12-03 15:02:39.231000             🧑  作者: Mango

Laravel 刀片模板

简介

Laravel 刀片模板是 Laravel 的核心功能之一,用于构建可重复使用的视图模板。刀片模板提供了一种灵活的方式来组织你的模板代码,并使用模板继承来减少重复代码的编写。

刀片模板采用 .blade.php 扩展名,提供了比传统 PHP 模板更为强大的功能,如条件语句、循环语句、布局继承等。

使用方式
  1. 创建一个新的 Blade 模板
@extends('layouts.app')

@section('content')
    <p>This is my body content.</p>
@endsection
  1. 定义一个布局模板
<!DOCTYPE html>
<html>
    <head>
        <title>@yield('title')</title>
    </head>
    <body>
        <div class="container">
            @yield('content')
        </div>
    </body>
</html>

在布局模板中使用 @yield 指令来定义占位符,你可以在子模板中使用 @section 指令来替换这些占位符。在上面的例子中,@yield('title') 表示标题占位符,@yield('content') 表示内容占位符。

  1. 继承布局模板并填充占位符

子模板可以通过 @extends 指令继承布局模板,然后使用 @section 指令填充占位符。

@extends('layouts.app')

@section('title', 'Page Title')

@section('content')
    <p>This is my body content.</p>
@endsection
Blade 模板语法

Blade 模板提供了一些语法糖,使得模板更易于构建和维护。

变量输出

可以通过双大括号 {{}} 来输出变量的值,例如:

{{ $name }}
控制结构

Blade 模板支持 PHP 所有的控制结构,例如 ifforwhile 等。

@if (count($users) === 1)
    I have one user!
@elseif (count($users) > 1)
    I have multiple users!
@else
    I don't have any users.
@endif

@foreach ($users as $user)
    <p>This is user {{ $user->id }}</p>
@endforeach

@while (true)
    <p>I will never stop!</p>
@endwhile
原始输出

如果你需要原样输出 HTML 或代码,你可以使用 {!! !!}

{!! $html !!}
模板继承

Blade 模板支持模板继承,使用 @extends 指令来继承一个布局模板。子模板可以使用 @section 指令来定义自己的内容,这些内容可以在布局模板中显示。

@extends('layouts.app')

@section('title', 'Page Title')

@section('content')
    <p>This is my body content.</p>
@endsection
条件指令

Blade 模板支持一系列条件指令,用于判断变量是否存在、是否为真、是否为空等。

@isset($variable)
    I have a variable.
@endisset

@empty($variable)
    I don't have a variable.
@endempty

@auth
    You are authenticated.
@endauth

@guest
    You are not authenticated.
@endguest

@unless (true)
    This will never be shown.
@endunless
结语

Blade 刀片模板是 Laravel 框架中的核心特性之一,它提供了一种灵活、易于维护的方式来构建视图模板。在实际项目中,你可以通过模板继承、条件指令、循环指令等功能,快速构建复杂的 HTML 内容。