ホームページ >PHPフレームワーク >Laravel >Laravel 開発: Laravel Blade テンプレート レイアウトの使用方法?
Laravel は PHP をベースとした優れた開発フレームワークで、習得が簡単、効率的、安全であるという利点があり、WEB 開発者に深く愛されています。その中でもLaravel BladeテンプレートレイアウトはLaravelフレームワークの中でも非常に実用的な機能であり、本記事ではLaravel Bladeテンプレートレイアウトの使い方を実際の事例を通して紹介します。
Blade テンプレート レイアウトとは何ですか?
Blade テンプレート エンジンは、Laravel フレームワークのデフォルトのビュー エンジンです。PHP のネイティブ構文のテンプレート エンジンと比較して、Blade はより簡潔で洗練された構文をサポートしており、Laravel フレームワークでより適切に使用できます。 Laravel Blade テンプレート レイアウトとは、Web ページをヘッダー、テール、サイドバー、ブロック コンテンツのモジュール式の組み合わせに分割して、個別の開発を容易にし、開発効率を向上させることを指します。
Laravel では、artisan コマンドを使用してレイアウト マスター テンプレートを生成できます。具体的な手順は次のとおりです。
## php 職人 make:layout master##このコマンドを実行すると、master.blade.php という名前のマスター テンプレート ファイルがプロジェクトの resource/views/layouts/ ディレクトリに生成されます。ファイルを開くと、コードの内容が次のとおりであることがわかります:
<!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>テンプレート ファイルには、ヘッダー、末尾、ナビゲーション バー、本文などのさまざまなブロックが含まれていることがわかります。ここの @yield() 関数はテンプレート ブロックを定義します。他のビュー ファイルで @section() 関数を使用してこれらのテンプレート ブロックを埋めます。
継承したサブビューを置き換える
@extends('layouts.master')
@extends('layouts.master') ここで、現在のものを表します。 view file マスターテンプレートファイルlayouts.masterを継承します。次に、これらのテンプレート ブロックに @yield() 関数で定義されたテンプレート ブロック名を入力できます。たとえば、次のコードをビュー ファイルに追加できます:
@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上記のコードでは、@section () 関数は、メイン テンプレートのテンプレート セクションを埋めるために使用されます。たとえば、@section('title', 'page title') は、メイン テンプレートの b2386ffb911b14667cb8f0f91ea547a7 タグを埋めるために使用されます。変数を使用して入力する標準の HTML テンプレートとは異なり、Blade テンプレートを使用すると、他のテンプレートのコンテンツの一部を継承し、データの分離をより明確にすることができます。
Laravel View 静的メソッドを使用する
<?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); } }
Blade テンプレートでコントロール構造を使用する
@section('content') <div> @foreach ($posts as $post) <h2>{{ $post->title }}</h2> <p>{{ substr($post->content, 0, 100) }}</p> @endforeach </div> @endsection
以上がLaravel 開発: Laravel Blade テンプレート レイアウトの使用方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。