📅  最后修改于: 2023-12-03 15:02:39.231000             🧑  作者: Mango
Laravel 刀片模板是 Laravel 的核心功能之一,用于构建可重复使用的视图模板。刀片模板提供了一种灵活的方式来组织你的模板代码,并使用模板继承来减少重复代码的编写。
刀片模板采用 .blade.php
扩展名,提供了比传统 PHP 模板更为强大的功能,如条件语句、循环语句、布局继承等。
@extends('layouts.app')
@section('content')
<p>This is my body content.</p>
@endsection
<!DOCTYPE html>
<html>
<head>
<title>@yield('title')</title>
</head>
<body>
<div class="container">
@yield('content')
</div>
</body>
</html>
在布局模板中使用 @yield
指令来定义占位符,你可以在子模板中使用 @section
指令来替换这些占位符。在上面的例子中,@yield('title')
表示标题占位符,@yield('content')
表示内容占位符。
子模板可以通过 @extends
指令继承布局模板,然后使用 @section
指令填充占位符。
@extends('layouts.app')
@section('title', 'Page Title')
@section('content')
<p>This is my body content.</p>
@endsection
Blade 模板提供了一些语法糖,使得模板更易于构建和维护。
可以通过双大括号 {{}}
来输出变量的值,例如:
{{ $name }}
Blade 模板支持 PHP 所有的控制结构,例如 if
、for
、while
等。
@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 内容。