Laravel-Entwicklung: Wie verwende ich das Laravel Blade-Vorlagenlayout?
Jun 14, 2023 am 10:41 AMLaravel 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.
- 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 master
php 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()函数填充这些模板区块。
- 替换被继承的子视图
对于任何需要使用布局的视图文件,都可以通过继承主模板来进行布局。打开视图文件,添加如下代码:
@extends('layouts.master')
@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
- Geerbte Unteransichten ersetzen
- 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 <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.
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!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

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

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

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

Architektur und Praxis verteilter PHP-Systeme

Vergleich der neuesten Versionen von Laravel und CodeIgniter

Wie vergleichen sich die Datenverarbeitungsfunktionen in Laravel und CodeIgniter?

PHP-Code-Unit-Tests und Integrationstests
