Laravel Blade模板继承技巧

发布时间:2024-11-22 14:47:50 作者:小樊
来源:亿速云 阅读:78

Laravel Blade模板继承是一种强大的功能,它允许你创建一个基本布局文件,然后在其他视图文件中扩展和重用这些布局。以下是一些Laravel Blade模板继承的技巧:

1. 创建基本布局文件

首先,你需要创建一个基本布局文件,通常命名为 resources/views/layouts/app.blade.php。这个文件将包含所有页面共享的结构和样式。

<!-- resources/views/layouts/app.blade.php -->
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@yield('title', 'Laravel')</title>
    <!-- 引入CSS和JS文件 -->
    @include('layouts.partials.styles')
    @include('layouts.partials.scripts')
</head>
<body>
    <div id="app">
        <header>
            @include('layouts.partials.header')
        </header>
        <main>
            @yield('content')
        </main>
        <footer>
            @include('layouts.partials.footer')
        </footer>
    </div>
</body>
</html>

2. 使用 @yield@section

在基本布局文件中,使用 @yield 指令来定义一个占位符,你可以在子视图中填充这个占位符。同时,使用 @section 指令来定义子视图中的内容。

<!-- resources/views/pages/home.blade.php -->
@extends('layouts.app')

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

@section('content')
    <h1>Welcome to the Home Page</h1>
    <p>This is the home page content.</p>
@endsection

3. 使用 @include 嵌套布局

你可以在基本布局文件中使用 @include 指令来包含其他布局文件,从而实现更复杂的布局结构。

<!-- resources/views/layouts/app.blade.php -->
<body>
    <div id="app">
        <header>
            @include('layouts.partials.header')
        </header>
        <main>
            @yield('content')
        </main>
        <footer>
            @include('layouts.partials.footer')
        </footer>
    </div>
</body>
</html>

4. 使用 @parent 继承父布局

如果你想在子视图中修改父布局的某些部分,可以使用 @parent 指令。

<!-- resources/views/pages/home.blade.php -->
@extends('layouts.app')

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

@section('content')
    @parent
    <p>Additional content for the home page.</p>
@endsection

5. 使用 @guest@auth 指令

Laravel Blade提供了 @guest@auth 指令,可以方便地根据用户是否登录来显示不同的内容。

<!-- resources/views/layouts/app.blade.php -->
<body>
    <div id="app">
        <header>
            @guest
                <a href="{{ route('login') }}">Login</a>
                <a href="{{ route('register') }}">Register</a>
            @else
                <p>Welcome, {{ auth()->user()->name }}!</p>
                <a href="{{ route('logout') }}">Logout</a>
            @endguest
        </header>
        <main>
            @yield('content')
        </main>
        <footer>
            @include('layouts.partials.footer')
        </footer>
    </div>
</body>
</html>

6. 使用 @yield('sidebar')@include('partials.sidebar')

你可以在基本布局文件中定义一个占位符,然后在子视图中填充这个占位符,或者使用 @include 指令来包含侧边栏文件。

<!-- resources/views/layouts/app.blade.php -->
<body>
    <div id="app">
        <header>
            @include('layouts.partials.header')
        </header>
        <main>
            @yield('content')
        </main>
        <aside>
            @yield('sidebar')
        </aside>
        <footer>
            @include('layouts.partials.footer')
        </footer>
    </div>
</body>
</html>
<!-- resources/views/pages/home.blade.php -->
@extends('layouts.app')

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

@section('content')
    <h1>Welcome to the Home Page</h1>
    <p>This is the home page content.</p>
@endsection

@section('sidebar')
    <h2>Sidebar</h2>
    <p>This is the sidebar content.</p>
@endsection

通过这些技巧,你可以有效地使用Laravel Blade模板继承来创建可重用的布局和组件,从而提高代码的可维护性和可读性。

推荐阅读:
  1. Laravel 模板 Blade模板学习笔记
  2. laravel中Blade模板指的是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

laravel

上一篇:Laravel ORM性能优化

下一篇:Laravel表单请求验证

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》