ホームページ >PHPフレームワーク >Laravel >Laravel 開発: Laravel Blade テンプレート レイアウトの使用方法?

Laravel 開発: Laravel Blade テンプレート レイアウトの使用方法?

WBOY
WBOYオリジナル
2023-06-14 10:41:191025ブラウズ

Laravel は PHP をベースとした優れた開発フレームワークで、習得が簡単、効率的、安全であるという利点があり、WEB 開発者に深く愛されています。その中でもLaravel BladeテンプレートレイアウトはLaravelフレームワークの中でも非常に実用的な機能であり、本記事ではLaravel Bladeテンプレートレイアウトの使い方を実際の事例を通して紹介します。

Blade テンプレート レイアウトとは何ですか?

Blade テンプレート エンジンは、Laravel フレームワークのデフォルトのビュー エンジンです。PHP のネイティブ構文のテンプレート エンジンと比較して、Blade はより簡潔で洗練された構文をサポートしており、Laravel フレームワークでより適切に使用できます。 Laravel Blade テンプレート レイアウトとは、Web ページをヘッダー、テール、サイドバー、ブロック コンテンツのモジュール式の組み合わせに分割して、個別の開発を容易にし、開発効率を向上させることを指します。

  1. レイアウト マスター テンプレートの作成

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() 関数を使用してこれらのテンプレート ブロックを埋めます。

継承したサブビューを置き換える

  1. レイアウトを使用する必要があるビュー ファイルでは、メイン テンプレートを継承することでレイアウトを実行できます。ビュー ファイルを開き、次のコードを追加します。

@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 静的メソッドを使用する

  1. @yield() 関数と @section() 関数に加えて、Laravel には View 静的メソッドも提供されており、これをお勧めします。
  2.     <?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);
            }
        }
上記のコードでは、View::make を使用してビューを生成し、配列インスタンス $data をビューの変数コンテキストとして渡します。この配列では、$title、$header、$nav、$content、$footer などの 5 つの変数を定義しています。これらは、メイン テンプレート内の対応するテンプレート ブロックを埋めるために使用されます。

Blade テンプレートでコントロール構造を使用する

  1. Blade テンプレートでは、テンプレート ブロックを埋めるための @yield() と @section() に加えて、 @if、@foreach、@for などの制御構造を使用して特定のロジックを実装します。具体的な実装は次のとおりです。
  2. @section('content')
        <div>
            @foreach ($posts as $post)
                <h2>{{ $post->title }}</h2>
                <p>{{ substr($post->content, 0, 100) }}</p>
            @endforeach
        </div>
    @endsection
このコードでは、@foreach ループ ステートメントを使用して、配列 $posts を使用し、{ { $post->title }} と {{ substr($post->content, 0, 100) }} を使用して記事のタイトルと簡単な内容を出力します。

まとめ

上記はLaravel Bladeテンプレートレイアウトの活用事例であり、Laravel Bladeテンプレートレイアウトを利用することでWEBアプリケーションの開発効率が大幅に向上し、ビジネスロジックの構築も可能になります。見解の分離がより明確になります。もちろん、これに加えて、Laravel フレームワークには検討する価値のある多くの強力な機能があります。

以上がLaravel 開発: Laravel Blade テンプレート レイアウトの使用方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。