【Laravel】Bladeテンプレートの使い方とサンプルコード

Laravel Bladeテンプレートの使い方とサンプルコード

概要

Laravelは、PHPのフレームワークの中でも非常に人気があります。その中でも、Bladeテンプレートエンジンは、ビューの作成や表示のロジックを効率的に行うことができるため、非常に重要な機能です。この記事では、Laravel Bladeテンプレートの基本的な使い方と、実際のサンプルコードを紹介します。

Bladeテンプレートとは

Bladeテンプレートは、Laravelフレームワークの一部であり、ビューを生成するためのテンプレートエンジンです。Bladeテンプレートは、PHPのコードとHTMLを組み合わせて使用することができ、テンプレート内での制御構造や変数の表示などを簡単に行うことができます。

Bladeテンプレートの基本的な使い方

Bladeテンプレートを使用するには、まずビューファイルの拡張子を

.blade.php

にする必要があります。そして、

resources/views

ディレクトリにビューファイルを作成します。

変数の表示

Bladeテンプレートでは、

{{ $variable }}

のように変数を表示することができます。

$variable

には、コントローラから渡されたデータなどを指定します。


<h1>{{ $title }}</h1>
<p>{{ $content }}</p>

制御構造の使用

Bladeテンプレートでは、条件分岐やループ処理などの制御構造も使用することができます。

条件分岐

@if

@else

@endif

を使用して、条件分岐を行うことができます。


@if ($count > 0)
    <p>記事が見つかりました。</p>
@else
    <p>記事が見つかりませんでした。</p>
@endif

ループ処理

@foreach

を使用して、配列やコレクションの要素を繰り返し表示することができます。


@foreach ($articles as $article)
    <h2>{{ $article->title }}</h2>
    <p>{{ $article->content }}</p>
@endforeach

レイアウトの作成

Bladeテンプレートでは、レイアウトを作成することもできます。レイアウトは、複数のビューファイルで共通の部分を切り出して管理するための仕組みです。

レイアウトファイルは、

resources/views/layouts

ディレクトリに作成します。そして、

@yield

を使用して、レイアウト内の特定の場所をビューファイルの内容で置き換えることができます。


<!-- resources/views/layouts/app.blade.php -->
<html>
    <head>
        <title>@yield('title')</title>
    </head>
    <body>
        <div class="container">
            @yield('content')
        </div>
    </body>
</html>

<!-- resources/views/articles/index.blade.php -->
@extends('layouts.app')

@section('title', '記事一覧')

@section('content')
    <h1>記事一覧</h1>
    <!-- 記事の表示 -->
@endsection

サンプルコード

以下に、Bladeテンプレートを使用したサンプルコードを示します。


<!-- resources/views/articles/show.blade.php -->
@extends('layouts.app')

@section('title', $article->title)

@section('content')
    <h1>{{ $article->title }}</h1>
    <p>{{ $article->content }}</p>
@endsection

まとめ

Laravel Bladeテンプレートは、PHPフレームワークの中でも非常に強力な機能です。変数の表示や制御構造の使用、レイアウトの作成など、さまざまなことが可能です。この記事では、Bladeテンプレートの基本的な使い方とサンプルコードを紹介しました。Laravelを使用する際には、ぜひBladeテンプレートを活用して効率的なビューの作成を行ってください。

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x