Laravel Blade模板继承是一种强大的功能,它允许你创建一个基本布局文件,然后在其他视图文件中扩展和重用这些布局。以下是一些Laravel Blade模板继承的技巧:
首先,你需要创建一个基本布局文件,通常命名为 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>
@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
@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>
@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
@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>
@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模板继承来创建可重用的布局和组件,从而提高代码的可维护性和可读性。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。