Heim >PHP-Framework >Laravel >Laravel-Entwicklung: Wie verwende ich das Laravel Blade-Vorlagenlayout?

Laravel-Entwicklung: Wie verwende ich das Laravel Blade-Vorlagenlayout?

WBOY
WBOYOriginal
2023-06-14 10:41:191025Durchsuche

Laravel ist ein ausgezeichnetes Entwicklungsframework, das auf PHP basiert. Es hat den Vorteil, dass es einfach zu erlernen, effizient und sicher ist und bei WEB-Entwicklern sehr beliebt ist. Unter anderem ist das Laravel Blade-Vorlagenlayout eine sehr praktische Funktion im Laravel-Framework. In diesem Artikel erfahren Sie, wie Sie das Laravel Blade-Vorlagenlayout anhand tatsächlicher Fälle verwenden.

Was ist das Blade-Vorlagenlayout?

Blade-Vorlagen-Engine ist die Standard-Ansichts-Engine des Laravel-Frameworks. Im Vergleich zur Template-Engine der nativen PHP-Syntax unterstützt Blade eine prägnantere und elegantere Syntax und kann besser mit dem Laravel-Framework verwendet werden. Das Layout der Laravel Blade-Vorlage bezieht sich auf die Aufteilung der Webseite in eine modulare Kombination aus Header, Tail, Sidebar und Blockinhalten, um die separate Entwicklung zu erleichtern und die Entwicklungseffizienz zu verbessern.

  1. Erstellen Sie die Layout-Master-Vorlage

In Laravel können wir den Befehl artisan verwenden, um die Layout-Master-Vorlage zu generieren. Die spezifischen Schritte sind wie folgt:

php artisan make:layout masterphp artisan make:layout master

执行该命令后,在项目resources/views/layouts/目录下会生成一个名为master.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">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>@yield('title')</title>
</head>
<body>
    <header>
        @yield('header')
    </header>
    <nav>
        @yield('nav')
    </nav>
    <main>
        @yield('content')
    </main>
    <footer>
        @yield('footer')
    </footer>
</body>
</html>

我们可以看到,模板文件中包含了头部、尾部、导航栏、主体等不同的区块,使用Blade模板语法的@yield()函数来占位,这里的@yield()函数定义了一个模板区块,以后我们将在其他视图文件中使用@section()函数填充这些模板区块。

  1. 替换被继承的子视图

对于任何需要使用布局的视图文件,都可以通过继承主模板来进行布局。打开视图文件,添加如下代码:

@extends('layouts.master')

Nach der Ausführung dieses Befehls wird eine Master-Vorlagendatei mit dem Namen master.blade.php im Verzeichnis resources/views/layouts/ des Projekts generiert. Öffnen Sie die Datei und Sie können sehen, dass der Codeinhalt wie folgt lautet:

@section('title', '页面标题')
@section('header')
    <h1>头部内容</h1>
@endsection
@section('nav')
    <ul>
        <li><a href="#">导航栏1</a></li>
        <li><a href="#">导航栏2</a></li>
        <li><a href="#">导航栏3</a></li>
    </ul>
@endsection
@section('content')
    <p>主体内容</p>
@endsection
@section('footer')
    <p>版权信息</p>
@endsection

Wir können sehen, dass die Vorlagendatei verschiedene Blöcke wie Header, Tail, Navigationsleiste, Body usw. enthält, indem wir @yield() der Blade-Vorlage verwenden Die Funktion @yield() definiert hier einen Vorlagenblock. Wir werden in Zukunft die Funktion @section() in anderen Ansichtsdateien verwenden.

    Geerbte Unteransichten ersetzen
    1. Für jede Ansichtsdatei, die ein Layout verwenden muss, können Sie das Layout erstellen, indem Sie die Hauptvorlage erben. Öffnen Sie die Ansichtsdatei und fügen Sie den folgenden Code hinzu:

    @extends('layouts.master')

    @extends('layouts.master') bedeutet hier, dass die aktuelle Ansichtsdatei von der Hauptansicht erbt Vorlagendatei layouts.master . Als Nächstes können Sie diese Vorlagenblöcke mit den durch die Funktion @yield() definierten Vorlagenblocknamen füllen. Sie können der Ansichtsdatei beispielsweise den folgenden Code hinzufügen:

        <?php
    
        namespace AppHttpControllers;
    
        use IlluminateHttpRequest;
        use IlluminateSupportFacadesView;
    
        class HomeController extends Controller
        {
            public function index()
            {
                $data = [
                    'title' => '页面标题',
                    'header' => '<h1>头部内容</h1>',
                    'nav' => '<ul>
                                <li><a href="#">导航栏1</a></li>
                                <li><a href="#">导航栏2</a></li>
                                <li><a href="#">导航栏3</a></li>
                              </ul>',
                    'content' => '<p>主体内容</p>',
                    'footer' => '<p>版权信息</p>'
                ];
                return View::make('home.index', $data);
            }
        }
      Im obigen Code die Funktion @section() Verwendet Zum Ausfüllen von Vorlagenabschnitten in der Hauptvorlage wird beispielsweise @section('title', 'page title') zum Ausfüllen des b2386ffb911b14667cb8f0f91ea547a7-Tags verwendet. Im Gegensatz zu Standard-HTML-Vorlagen, die Variablen zum Füllen verwenden, ermöglichen uns Blade-Vorlagen, einen Teil des Inhalts anderer Vorlagen zu erben und die Trennung von Daten deutlicher zu machen.
    Verwenden Sie statische Methoden von Laravel View

    Zusätzlich zu den Funktionen @yield() und @section() bietet Laravel auch statische View-Methoden. Die spezifischen Implementierungsschritte lauten wie folgt:

    @section('content')
        <div>
            @foreach ($posts as $post)
                <h2>{{ $post->title }}</h2>
                <p>{{ substr($post->content, 0, 100) }}</p>
            @endforeach
        </div>
    @endsection

    Im obigen Code haben wir View::make verwendet, um die Ansicht zu generieren, und eine Array-Instanz $data als Variablenkontext der Ansicht übergeben. In diesem Array definieren wir fünf Variablen, darunter $title, $header, $nav, $content und $footer, die zum Ausfüllen der entsprechenden Vorlagenblöcke in der Hauptvorlage verwendet werden.

    Verwenden Sie Kontrollstrukturen in Blade-Vorlagen🎜🎜🎜In Blade-Vorlagen können wir zusätzlich zu @yield() und @section() zum Füllen von Vorlagenblöcken auch Kontrollstrukturen wie @if, @foreach, @for verwenden usw. Um eine bestimmte Logik zu implementieren, lautet die spezifische Implementierung wie folgt: 🎜rrreee🎜In diesem Code verwenden wir die @foreach-Schleifenanweisung, um das Array $posts zu durchlaufen, und verwenden {{ $post->title }} und {{ substr($post ->content, 0, 100) }} zur Ausgabe des Artikeltitels und des kurzen Inhalts. 🎜🎜Zusammenfassung🎜🎜Das Obige ist eine praktische Falldemonstration der Verwendung des Laravel Blade-Vorlagenlayouts. Die Verwendung des Laravel Blade-Vorlagenlayouts kann die Entwicklungseffizienz von WEB-Anwendungen erheblich verbessern und gleichzeitig die Trennung ermöglichen Geschäftslogik und Ansichten offensichtlicher. Darüber hinaus verfügt das Laravel-Framework natürlich über viele leistungsstarke Funktionen, die es wert sind, erkundet zu werden. 🎜

Das obige ist der detaillierte Inhalt vonLaravel-Entwicklung: Wie verwende ich das Laravel Blade-Vorlagenlayout?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn