Heim >PHP-Framework >Laravel >Laravel-Entwicklung: Wie verwende ich das Laravel Blade-Vorlagenlayout?
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.
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> @endsectionWir 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.
@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); } }
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!