Laravel @extends 和 @include

作者:编程家 分类: laravel 时间:2025-08-24

Laravel的 @extends 和 @include 是在Blade模板引擎中常用的两个指令。@extends 指令用于扩展(继承)一个父模板,而 @include 指令用于引入其他视图模板。这两个指令在Laravel中的应用非常广泛,能够帮助开发者更好地组织和重用视图代码。

在Laravel中,@extends 指令可以让我们创建一个父模板,然后在子模板中通过继承父模板的方式来重用父模板的代码。通过这种方式,我们可以将一些通用的布局、样式和脚本代码抽取出来,放在父模板中,然后在各个子模板中继承父模板,只需关注子模板自身的内容即可。

下面是一个简单的示例,假设我们有一个父模板 master.blade.php,它定义了网页的基本布局、导航栏、页脚等内容:

blade

My Website

Welcome to My Website

@yield('content')

© 2022 My Website. All rights reserved.

然后,我们可以在子模板中使用 @extends 指令继承父模板,并通过 @section 指令定义子模板自己的内容:

blade

@extends('master')

@section('content')

About Us

We are a leading company in the industry.

@endsection

在上面的示例中,子模板 about.blade.php 继承了父模板 master.blade.php,并通过 @section('content') 指令定义了自己的内容。当渲染 about.blade.php 视图时,父模板中的 @yield('content') 将会被子模板中的内容替换,从而形成最终的网页。

除了使用 @extends 进行模板继承外,我们还可以使用 @include 指令引入其他视图模板。@include 指令可以在当前视图中嵌入其他视图,从而实现代码的重用和模块化。

下面是一个示例,假设我们有一个导航栏的视图模板 navbar.blade.php,它定义了网页的导航栏内容:

blade

然后,我们可以在其他视图中使用 @include 指令引入导航栏视图模板:

blade

My Website

@include('navbar')

Welcome to My Website

This is the homepage.

© 2022 My Website. All rights reserved.

在上面的示例中,我们在视图模板中使用 @include('navbar') 将导航栏视图模板嵌入其中,从而实现了导航栏的重用。

通过 @extends 和 @include 指令,Laravel的Blade模板引擎提供了强大的视图组织和重用功能。通过模板继承,我们可以将通用的布局和代码放在父模板中,然后在子模板中定义自己的内容,实现代码的重用和模块化。而通过模板引入,我们可以在一个视图中引入其他视图,实现代码的重用和模块化。

:Laravel的 @extends 和 @include 是Blade模板引擎中常用的指令,能够帮助开发者更好地组织和重用视图代码。通过 @extends 指令,我们可以创建一个父模板,并在子模板中继承父模板的代码,实现代码的重用和模块化。而通过 @include 指令,我们可以在一个视图中引入其他视图,实现代码的重用和模块化。这些功能使得视图开发更加灵活和高效。

示例代码:

blade

My Website

Welcome to My Website

@yield('content')

© 2022 My Website. All rights reserved.

@extends('master')

@section('content')

About Us

We are a leading company in the industry.

@endsection

My Website

@include('navbar')

Welcome to My Website

This is the homepage.

© 2022 My Website. All rights reserved.