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

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

Jun 14, 2023 am 10:41 AM
laravel blade 模板布局

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>
Nach dem Login kopieren

我们可以看到,模板文件中包含了头部、尾部、导航栏、主体等不同的区块,使用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
Nach dem Login kopieren

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);
            }
        }
    Nach dem Login kopieren
      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 <title>-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')
        &lt;div&gt;
            @foreach ($posts as $post)
                &lt;h2&gt;{{ $post-&gt;title }}&lt;/h2&gt;
                &lt;p&gt;{{ substr($post-&gt;content, 0, 100) }}&lt;/p&gt;
            @endforeach
        &lt;/div&gt;
    @endsection
    Nach dem Login kopieren

    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!

Erklärung dieser Website
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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP vs. Flutter: Die beste Wahl für die mobile Entwicklung PHP vs. Flutter: Die beste Wahl für die mobile Entwicklung May 06, 2024 pm 10:45 PM

PHP vs. Flutter: Die beste Wahl für die mobile Entwicklung

Laravel – Handwerkerbefehle Laravel – Handwerkerbefehle Aug 27, 2024 am 10:51 AM

Laravel – Handwerkerbefehle

Wie verwende ich objektrelationales Mapping (ORM) in PHP, um Datenbankoperationen zu vereinfachen? Wie verwende ich objektrelationales Mapping (ORM) in PHP, um Datenbankoperationen zu vereinfachen? May 07, 2024 am 08:39 AM

Wie verwende ich objektrelationales Mapping (ORM) in PHP, um Datenbankoperationen zu vereinfachen?

Analyse der Vor- und Nachteile von PHP-Unit-Test-Tools Analyse der Vor- und Nachteile von PHP-Unit-Test-Tools May 06, 2024 pm 10:51 PM

Analyse der Vor- und Nachteile von PHP-Unit-Test-Tools

Architektur und Praxis verteilter PHP-Systeme Architektur und Praxis verteilter PHP-Systeme May 04, 2024 am 10:33 AM

Architektur und Praxis verteilter PHP-Systeme

Vergleich der neuesten Versionen von Laravel und CodeIgniter Vergleich der neuesten Versionen von Laravel und CodeIgniter Jun 05, 2024 pm 05:29 PM

Vergleich der neuesten Versionen von Laravel und CodeIgniter

Wie vergleichen sich die Datenverarbeitungsfunktionen in Laravel und CodeIgniter? Wie vergleichen sich die Datenverarbeitungsfunktionen in Laravel und CodeIgniter? Jun 01, 2024 pm 01:34 PM

Wie vergleichen sich die Datenverarbeitungsfunktionen in Laravel und CodeIgniter?

PHP-Code-Unit-Tests und Integrationstests PHP-Code-Unit-Tests und Integrationstests May 07, 2024 am 08:00 AM

PHP-Code-Unit-Tests und Integrationstests

See all articles