信息发布→ 登录 注册 退出

Laravel如何使用Blade模板引擎_Laravel Blade视图编写与模板继承

发布时间:2025-11-21

点击量:
Blade是Laravel的模板引擎,使用@extends和@section实现模板继承,通过{{}}输出变量,支持@if、@foreach等指令,可高效构建清晰的视图结构。

Blade 是 Laravel 自带的轻量级模板引擎,它允许你使用简洁、优雅的语法编写视图,并支持模板继承、组件、条件语句和循环等特性。Blade 文件的扩展名为 .blade.php,会被 Laravel 编译成原生 PHP 代码并缓存,因此不会影响性能。

创建与渲染 Blade 视图

resources/views 目录下创建 Blade 文件,例如:home.blade.php

内容示例:




首页


欢迎来到 {{ $name }} 的网站



在控制器中使用 view() 函数渲染该视图:

public function index()
{
return view('home', ['name' => 'Laravel']);
}

模板继承:使用 @extends 和 @section

Blade 的核心优势之一是模板继承,可以定义一个布局文件(layout),然后在其他页面中继承并填充特定区域。

步骤如下:

  • resources/views/layouts 下创建主布局文件,如 app.blade.php
  • 使用 @section 定义可替换的内容区块
  • 子页面使用 @extends 继承布局,并用 @section 填充内容

示例:主布局 app.blade.php




@yield('title', '默认标题')



我的网站






@yield('content')



@section('footer')

版权所有 © 2025


@show


子页面继承布局,如 home.blade.php

@extends('layouts.app')

@section('title', '主页')

@section('content')

这是首页内容


欢迎访问!


@endsection

@section('footer')
@parent

本页由 Blade 驱动


@endsection

说明:

  • @yield('title') 输出命名区块内容,可设置默认值
  • @section('footer')...@endsection 定义可覆盖或追加的内容
  • @parent 表示保留父模板中的内容并追加新内容

常用 Blade 指令

Blade 提供了许多便捷指令来简化视图逻辑:

  • @if / @else / @endif:条件判断
  • @foreach / @endforeach:循环输出数据
  • {{ $variable }}:显示变量(自动转义)
  • {!! $html !!}:输出原始 HTML(不转义,注意 XSS 风险)
  • @include('view.name'):包含其他视图
  • @auth / @guest:根据用户登录状态显示内容

示例:使用循环和条件

@if($posts)

    @foreach($posts as $post)
  • {{ $post->title }}

  • @endforeach

@else

暂无文章


@endif

基本上就这些。掌握 Blade 的模板继承和常用语法后,就能高效构建结构清晰、易于维护的前端页面。

标签:# 循环  # 用户登录  # 欢迎来到  # 欢迎访问  # 自带  # 一是  # 就能  # 本页  # 暂无  # 这是  # 首页  # 继承  # php  # include  # foreach  # if  # xss  # 2025  # ai  # app  # 前端  # html  # laravel  
在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!