在 Laravel 中,模板通常指的是 Blade 模板引擎,它是 Laravel 框架提供的一种简单而强大的模板语言。Blade 模板允许你在视图中定义布局、组件,并嵌入 PHP 代码,以生成动态 HTML 内容。以下是关于 Laravel Blade 模板包含的一些关键概念和用法:
1. 基本结构
Blade 模板文件通常以 .blade.php
作为文件扩展名。例如,welcome.blade.php
。
2. 模板继承
Blade 支持模板继承,允许你定义一个基础布局,并在子模板中扩展它。通常,你会在 resources/views/layouts
目录下创建一个基础布局文件,比如 app.blade.php
。
<!-- resources/views/layouts/app.blade.php -->
<!DOCTYPE html>
<html>
<head>
<title>App Name - @yield('title')</title>
</head>
<body>
@section('sidebar')
This is the master sidebar.
@show
<div class="container">
@yield('content')
</div>
</body>
</html>
3. 使用 @extends
和 @section
在子模板中,你可以使用 @extends
指令来继承基础布局,并使用 @section
指令来定义内容区域。
<!-- resources/views/child.blade.php -->
@extends('layouts.app')
@section('title', 'Page Title')
@section('sidebar')
@parent
<p>This is appended to the master sidebar.</p>
@endsection
@section('content')
<p>This is my body content.</p>
@endsection
4. 包含视图片段
你可以使用 @include
指令来包含其他视图片段。这在需要重用视图组件时非常有用。
<!-- resources/views/someview.blade.php -->
<div>
@include('partials.header')
<div class="content">
<h1>Welcome to my site</h1>
</div>
@include('partials.footer')
</div>
5. 组件和插槽
Laravel 还支持组件和插槽,这是一种更高级的重用视图逻辑的方式。组件可以定义自己的模板和插槽,允许在调用时传入自定义内容。
定义组件:
<!-- resources/views/components/alert.blade.php -->
<div class="alert alert-{{ $type }}">
{{ $slot }}
</div>
使用组件:
<x-alert type="danger">
This is a danger alert!
</x-alert>
6. 传递数据到视图
你可以在控制器中使用 view
函数将数据传递到视图:
public function show()
{
return view('child', ['name' => 'John']);
}
在 Blade 模板中,你可以这样访问数据:
<p>Hello, {{ $name }}!</p>
通过这些功能,Laravel 的 Blade 模板引擎使得管理复杂的视图结构变得简单和高效。它结合了模板继承和组件化,使得代码重用和维护更加容易。