カテゴリ: Laravel 更新日: 2025/12/12

Laravelの@includeで部分テンプレートを読み込もう!初心者向けBladeテンプレート入門

LaravelのBladeで部分テンプレートをインクルードする方法(@include)
LaravelのBladeで部分テンプレートをインクルードする方法(@include)

先生と生徒の会話形式で理解しよう

生徒

「Laravelで同じHTMLを何回も書くのが面倒なんです。もっと楽に使いまわせる方法ってありますか?」

先生

「Laravelでは、Bladeテンプレートの@includeディレクティブを使うことで、HTMLの共通部分を簡単に読み込めますよ。」

生徒

「それってどうやって使うんですか?」

先生

「それでは、@includeの基本的な使い方を分かりやすく説明していきましょう!」

1. Bladeテンプレートの@includeとは?

1. Bladeテンプレートの@includeとは?
1. Bladeテンプレートの@includeとは?

LaravelのBladeテンプレートでは、HTMLの一部を分けて別ファイルにし、必要な場所で再利用できます。そのときに使うのが@includeディレクティブです。

@includeを使えば、ヘッダー・フッター・メニューなど、何度も使う部品を簡単に読み込めるようになります。これにより、ファイルの見通しが良くなり、コードの重複も減らせて効率アップです。

2. Bladeで@includeを使う基本の書き方

2. Bladeで@includeを使う基本の書き方
2. Bladeで@includeを使う基本の書き方

例えば、共通のヘッダーを表示したいときは、次のようなコードを書きます。


@include('partials.header')

これは、resources/views/partials/header.blade.phpというファイルを読み込む、という意味です。.blade.phpは書かなくてOKです。

3. 部分テンプレートの中身を作ってみよう

3. 部分テンプレートの中身を作ってみよう
3. 部分テンプレートの中身を作ってみよう

実際に、共通のヘッダーを作るとしたら、次のような内容になります。


<!-- resources/views/partials/header.blade.php -->
<header>
    <h1>マイサイトのタイトル</h1>
    <nav>
        <a href="/">ホーム</a>
        <a href="/about">このサイトについて</a>
    </nav>
</header>

このようにしておけば、別のテンプレートファイルからいつでも@includeで呼び出せるようになります。

4. 変数を@includeに渡す方法

4. 変数を@includeに渡す方法
4. 変数を@includeに渡す方法

@includeでは、読み込むテンプレートにデータ(変数)を渡すこともできます。次のように書きます。


@include('partials.userinfo', ['name' => 'たろう'])

こうすると、partials/userinfo.blade.phpの中で、$nameという変数が使えるようになります。


<!-- resources/views/partials/userinfo.blade.php -->
<p>こんにちは、{{ $name }}さん!</p>

こんにちは、たろうさん!

5. 繰り返し使える部品として考えよう

5. 繰り返し使える部品として考えよう
5. 繰り返し使える部品として考えよう

@includeは、HTMLの「部品(パーツ)」を作っておいて、必要なときに組み合わせるような感覚です。

例えば、プラモデルを作るとき、頭や手、足を別々のパーツで作って最後に合体させますよね?LaravelのBladeテンプレートも同じで、@includeを使えば、パーツごとの管理が簡単になります。

6. @includeを使う上での注意点

6. @includeを使う上での注意点
6. @includeを使う上での注意点

ファイル名のスペルミスや、ディレクトリの構造を間違えると、Bladeで@includeが正しく動かなくなります。

ファイルは必ずresources/views/以下に置いてください。また、フォルダ名やファイル名は半角英数字で、拡張子は.blade.phpにします。

また、テンプレートの変更がすぐに反映されない場合は、キャッシュが残っている可能性があります。そのときは次のコマンドを使ってキャッシュをクリアしましょう。


php artisan view:clear

7. @includeと@includeIf、@includeWhenの違い

7. @includeと@includeIf、@includeWhenの違い
7. @includeと@includeIf、@includeWhenの違い

Bladeには他にも似た機能があります。

  • @includeIf:指定したテンプレートが存在すれば読み込み、なければ無視します。
  • @includeWhen:指定した条件がtrueのときだけテンプレートを読み込みます。

初めのうちは@includeだけでも十分ですが、覚えておくと便利ですよ。

まとめ

まとめ
まとめ

Laravelの@includeディレクティブは、Bladeテンプレートの中で繰り返し利用するヘッダーやフッター、メニュー、ユーザー情報といった「部分テンプレート」を効率よく読み込むための重要な仕組みです。今回の記事では、基本的な@includeの使い方から、変数の受け渡し、テンプレートの構造を整える考え方、さらには@includeIf・@includeWhenといった派生ディレクティブとの使い分けまで、テンプレート開発に必要な基礎知識を幅広く学びました。 BladeはLaravelの大きな特徴であり、その柔軟な構文によって開発効率が大きく向上します。特に@includeは、重複したHTMLの量を減らしてコードを整理し、保守性と拡張性を高められるため、Laravel学習者にとって必ず身につけておきたい機能です。複数ページで共通するレイアウトが増えるほど、@includeの効果は大きくなり、部品ごとにファイルを分けることで可読性が向上し、チーム開発でも混乱が起きにくくなります。 また、変数を@includeに渡す仕組みを理解しておくと、ユーザー情報やカスタムメッセージなど動的なデータも柔軟に扱えます。パーツを単なる静的なテンプレートとして使うのではなく、Laravelアプリケーションのロジックと連動して動く「再利用可能なコンポーネント」として活かすことができます。BladeはVueやReactと違いコンポーネント指向の仕組みを持ちませんが、@includeを活用することで似たような構成を実現でき、初心者でも整理されたテンプレート構造を作れるようになります。 加えて、@includeIfや@includeWhenを併用することで、テンプレートの存在チェックや条件付きの読み込みなど、状況に応じた制御も行えます。例えばログイン中のみユーザーメニューを表示するケースや、テンプレートファイルが存在する場合にだけ特定のパーツを挿入したい場面で役に立つ構文です。また、テンプレートの更新が反映されない時にはviewキャッシュのクリアが必要になる点も押さえておくべき知識です。 このように@includeは、Laravelの画面設計を組み立てるうえで欠かせないディレクティブであり、ページ構造を自然に整理するための基盤となります。Bladeの機能を習慣として使いこなすことで、開発のスピードを高めながら、誰が見ても理解しやすいテンプレートを作成できるようになるでしょう。

部分テンプレート活用サンプル

下記は、共通レイアウトの中で@includeを複数利用して画面を構成する実践的な例です。



<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>サンプルアプリ</title>
</head>
<body>
    @include('partials.header')
    
    <main class="container mt-4">
        @yield('content')
    </main>

    @include('partials.footer')
</body>
</html>


<header class="p-3 bg-light">
    <h1>共通ヘッダー</h1>
    @include('partials.nav')
</header>


<nav>
    <a href="/">ホーム</a>
    <a href="/about">サイトについて</a>
</nav>

このように、ページ全体のレイアウトファイルから複数の部分テンプレートを@includeで取り込むことで、構造をシンプルに保ちながら柔軟な拡張ができます。

先生と生徒の振り返り会話

生徒

「@includeってすごく便利ですね!同じHTMLを書かずに済むので、テンプレートがスッキリしました。」

先生

「そうなんです。Bladeで画面を作るときは、重複を減らして再利用できる構造を作ることがとても大切ですよ。」

生徒

「部分テンプレートに変数を渡せるのも助かります。ページごとの表示内容を柔軟に変えられますね。」

先生

「はい。Bladeは軽量で扱いやすいので、Laravel初心者でも自然にテンプレート構成を学べます。」

生徒

「@includeIfや@includeWhenも便利そうですね。条件によって表示を切り替えたい時に使えそう。」

先生

「用途に応じて使い分ければ、もっと効率よくテンプレートを組み立てられるようになりますよ。」

関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
Laravelの認証状態をチェックする方法を完全解説!authとAuth::check()を初心者向けにやさしく説明
New2
CodeIgniter
CodeIgniterのコントローラクラスの作り方を完全ガイド!初心者でもわかる基礎から実践まで
New3
Symfony
Symfonyのフォームラベルを多言語対応!初心者でもわかる翻訳設定ガイド
New4
Laravel
Laravelでユーザー登録機能を作る方法!初心者向けにバリデーションとリダイレクトをやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方
No.2
Java&Spring記事人気No2
Laravel
Laravelのビューとは?Bladeテンプレートの基本を解説
No.3
Java&Spring記事人気No3
Laravel
Laravelでセッションを扱う方法!保存方法と利用例を解説
No.4
Java&Spring記事人気No4
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方
No.5
Java&Spring記事人気No5
Laravel
Laravelでルーティングを設定する方法!web.phpと基本ルートの書き方を初心者向けに徹底解説
No.6
Java&Spring記事人気No6
Laravel
Laravelのルートキャッシュ機能を活用してパフォーマンス改善!初心者でもわかる完全ガイド
No.7
Java&Spring記事人気No7
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.8
Java&Spring記事人気No8
Laravel
LaravelでルートをBladeテンプレートに記述する方法(route関数)