カテゴリ: Laravel 更新日: 2026/07/05

LaravelのBladeに変数を渡す方法(withメソッド、compact関数)

LaravelのBladeに変数を渡す方法(withメソッド、compact関数)
LaravelのBladeに変数を渡す方法(withメソッド、compact関数)

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

生徒

「LaravelのBladeテンプレートにデータを渡す方法が知りたいです。どうやって変数を使うんでしょう?」

先生

「Bladeに変数を渡すには主に2つの方法があります。withメソッドとcompact関数です。これらを使うと、コントローラからビューにデータを渡せますよ。」

生徒

「具体的にどう使うのか、例を見ながら教えてください!」

先生

「はい、それでは詳しく説明しますね!」

1. Bladeに変数を渡すとは?

1. Bladeに変数を渡すとは?
1. Bladeに変数を渡すとは?

LaravelのBlade(ブレード)は、Webブラウザに表示される画面の見た目、つまり「ビュー」を作成するための便利な仕組みです。しかし、Blade単体では「誰がログインしているか」や「最新の投稿内容は何か」といった動的なデータを知ることができません。

そこで必要になるのが、コントローラからBladeへデータを届ける「変数を渡す」という作業です。コントローラが「データを用意する役割」、Bladeが「データを表示する役割」と分担されており、その間をデータが移動するイメージです。

コントローラ(Controller)

データベースから値を持ってきたり、計算をしたりして、表示したいデータ(変数)を準備します。

ビュー(Blade)

コントローラから受け取った変数を、HTMLの中にはめ込んでユーザーが見える形に整えます。

例えば、プログラミング未経験の方でもイメージしやすいのが「挨拶」の表示です。特定のユーザーの名前を画面に出したい場合、コントローラで $name = 'テストユーザー'; という箱(変数)を作り、それをBladeに送ることで、初めて画面に「こんにちは、テストユーザーさん!」と表示できるようになります。

このように、システムの裏側で動くデータと、表側のデザインをつなぐ架け橋が「変数を渡す」という処理なのです。

2. withメソッドで変数を渡す方法

2. withメソッドで変数を渡す方法
2. withメソッドで変数を渡す方法

コントローラの中でビューを返すときに、withメソッドを使って変数を渡せます。
with('変数名', 値) の形で書きます。


public function show()
{
    $name = '太郎';
    return view('welcome')->with('userName', $name);
}

この例では、$name の値「太郎」を、ビューの中で $userName という名前で使えるようにしています。

Bladeの中で変数を表示するときは、{{ $userName }} と書きます。


<p>こんにちは、{{ $userName }}さん!</p>

3. withメソッドを連続で使う方法

3. withメソッドを連続で使う方法
3. withメソッドを連続で使う方法

複数の変数を渡したい場合は、withメソッドを続けて書くこともできます。


public function show()
{
    $name = '太郎';
    $age = 25;
    return view('welcome')->with('userName', $name)->with('userAge', $age);
}

この場合、ビューの中で $userName$userAge を使えます。

4. compact関数で変数を渡す方法

4. compact関数で変数を渡す方法
4. compact関数で変数を渡す方法

もう一つよく使う方法は、PHPのcompact関数を使う方法です。
変数名の文字列を渡すと、それらの変数をまとめて配列にしてくれます。


public function show()
{
    $name = '太郎';
    $age = 25;
    return view('welcome', compact('name', 'age'));
}

この書き方では、ビューの中で $name$age をそのまま使えます。

compact('name', 'age') は、['name' => $name, 'age' => $age] と同じ意味です。

5. withメソッドとcompact関数の違い

5. withメソッドとcompact関数の違い
5. withメソッドとcompact関数の違い

どちらも変数をビューに渡す方法ですが、
withメソッドは「変数名を自由に変えて渡せるのが特徴です。
例えばコントローラの変数名と違う名前でビューに渡せます。
一方、compact関数は元の変数名をそのまま使って渡すのが基本です。

初心者のうちは、まとめて複数の変数を渡すときはcompactを使うと書きやすく、コードもスッキリします。

6. Bladeで変数を使う基本ルール

6. Bladeで変数を使う基本ルール
6. Bladeで変数を使う基本ルール

Bladeの中で変数を表示するときは、必ず {{ $変数名 }} と書きます。
これはHTMLの中にPHPの値を安全に埋め込む書き方です。
例えば:


<p>ユーザー名は {{ $name }} です。</p>

Bladeの変数は、渡した名前と同じ名前で使います。
もしコントローラで with('userName', $name) と渡したら、ビューでは {{ $userName }} と使いましょう。

7. 変数を渡す時のよくある疑問

7. 変数を渡す時のよくある疑問
7. 変数を渡す時のよくある疑問

Q. 変数をたくさん渡したい場合は?
compact関数でまとめて渡すか、withメソッドを連続で使います。

Q. 変数名は変えられますか?
withメソッドなら自由に変えられます。compactは元の名前のまま渡します。

Q. Bladeの中で変数が使えない場合は?
→ 変数名の渡し忘れや名前間違いが多いので、コントローラの渡し方とBladeの使い方をもう一度確認しましょう。

8. 大切なポイント

8. 大切なポイント
8. 大切なポイント
  • コントローラからビューにデータを渡すときはwithメソッドかcompact関数を使う。
  • withは変数名を自由に設定可能。compactは変数名をそのまま使う。
  • Bladeでは{{ $変数名 }}で変数を安全に表示できる。
  • 複数の変数を渡す場合はcompactがコードがスッキリしておすすめ。
  • 変数が正しく渡せているか、名前の確認をしっかりする。

まとめ

まとめ
まとめ

LaravelのBladeテンプレートに変数を渡す方法として、withメソッドとcompact関数をどのように使い分ければよいか、 今回の記事でじっくりと見ていきました。改めて振り返ってみると、Bladeに変数を渡す仕組みはとてもシンプルでありながら、 実際のアプリ開発では頻繁に登場するため、確実に理解しておきたい基礎知識です。 コントローラからビューへデータを渡す流れはLaravelのMVC構造の中でも特に中心的な部分であり、 データ表示やフォーム入力値の反映、一覧ページの表示など、あらゆる場面で役立ちます。

また、withメソッドによる柔軟な変数名の指定は、表示名を自由に変えたい場合に有効で、 compact関数は複数の変数をまとめて渡す場面でコードを簡潔にできる点が魅力です。 特に、変数の数が増えるとビュー側で扱うデータも複雑になりがちですが、 compactによって配列を自動生成する仕組みを利用することで、スッキリとしたコントローラを維持できます。 Laravelのコードの読みやすさはこうした細かな設計思想によって支えられていることがよくわかります。

さらに、Bladeテンプレート側での変数表示には必ず{{ }}構文を使うという基本も忘れてはいけません。 この構文はXSS対策も兼ねているため、安全なアプリケーションを作るための重要なポイントでもあります。 LaravelのBladeは非常に直感的で、テンプレートエンジンとしても扱いやすいため、変数を正しく渡せるようになると、 サイトの構造を整えたり、柔軟に画面を作ったりする幅が広がります。

以下に、今回の記事内容を総合したサンプルコードをまとめておきます。 withメソッドとcompact関数の両方を使い分けるときのイメージをつかむ役に立つはずです。

■ withメソッドとcompact関数の併用例


public function profile()
{
    $name = '花子';
    $age = 30;
    $city = '東京';

    // withで名前を変更しつつ、compactで複数の変数もまとめて渡す
    return view('user.profile')
        ->with('displayName', $name)
        ->with('currentCity', $city)
        ->with(compact('age'));
}

■ Blade側での表示例


<h1>{{ $displayName }}さんのプロフィール</h1>
<p>年齢:{{ $age }} 歳</p>
<p>現在地:{{ $currentCity }}</p>

このように、コントローラ側で柔軟に変数名を調整しつつ、Blade側では直感的にデータを扱えます。 特に実務では「表示用の名前と処理用の名前を分けたい」という場面も少なくないため、 withメソッドの使い方を理解しておくと非常に便利です。 また、compactによってまとめて渡したい変数があるときも見通しがよくなり、 コードの統一感も保ちやすくなります。

さらに細かい点として、Bladeで変数が表示されない場合は、 コントローラから正しく変数が渡っているかを確認し、 変数名の入力ミスや、渡した名前とBlade側で使っている名前が一致しているかを見直すことで、 多くのトラブルを解決できます。 Laravelは仕組みが明確なので、慣れるとこうした問題点もすぐに判断できるようになるでしょう。

変数を渡す技術はシンプルですが、Laravelアプリケーションでは必ず必要になる部分です。 小さな動作でも確実に理解しておくことで、複雑な画面やデータ連携が必要なページを作るときにも 迷わず対応できるようになります。 今後、Bladeの繰り返し構文や条件分岐と組み合わせることで、よりダイナミックな表示処理が可能となり、 Laravelによる開発の楽しさも一段と増していきます。

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

生徒

「withメソッドとcompact関数の違いがようやくわかりました!両方使えると便利ですね。」

先生

「その通りです。Laravelでは状況に応じて方法を選ぶことで、より読みやすく整ったコードになりますよ。」

生徒

「Blade側で変数を表示する書き方もシンプルで使いやすいと思いました。」

先生

「Bladeはとても直感的なので、慣れていくともっと便利さを実感できますよ。」

生徒

「これなら複数の変数を扱う画面も怖くないです!次は条件分岐や繰り返しも練習してみます。」

先生

「いいですね。Bladeを自由に扱えるようになると、Laravel開発が一気に楽しくなりますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

LaravelのBladeテンプレートエンジンに変数を渡すとは、具体的にどのような仕組みのことを指しているのでしょうか?

LaravelのBladeに変数を渡すというのは、バックエンドであるコントローラ側で取得したり加工したりしたデータ(変数)を、フロントエンドの表示を担うビュー(Bladeファイル)へ届ける仕組みのことです。例えば、データベースから取得したユーザー名や商品の価格、最新のニュース一覧といった動的な情報を、画面上の特定の場所に表示させたい時にこの「変数を渡す」という操作が必要になります。PHPのプログラムで処理した結果を、HTMLの見た目の中に組み込むための橋渡しのような役割だと考えると分かりやすいでしょう。
カテゴリの一覧へ
新着記事
New1
Symfony
Symfonyのサービスとは?役割と基本概念を初心者向けにやさしく解説
New2
Laravel
Laravelでリダイレクトやフラッシュメッセージをテストする方法を完全解説!初心者向けLaravelテスト入門
New4
CodeIgniter
CodeIgniterのセキュリティ対策を完全ガイド!初心者が守るべき基本設定
人気記事
No.2
Java&Spring記事人気No2
Laravel
LaravelでReactコンポーネントを組み込む方法完全ガイド!JSX対応でフロントエンド連携を学ぼう
No.3
Java&Spring記事人気No3
Laravel
LaravelのRESTfulコントローラ設計のベストプラクティスを初心者向けにわかりやすく解説
No.4
Java&Spring記事人気No4
Laravel
Laravelのold()関数でフォーム再表示時に値を保持する方法
No.5
Java&Spring記事人気No5
Symfony
Symfonyのインストール方法!CLIとComposerの導入手順まとめ
No.6
Java&Spring記事人気No6
Laravel
LaravelをDockerで動かすメリットと導入の全体像を徹底解説!初心者向け入門ガイド
No.7
Java&Spring記事人気No7
Symfony
Symfonyでバリデーションをコントローラに組み込む方法を徹底解説!初心者にもやさしい入力チェックの基本
No.8
Java&Spring記事人気No8
CodeIgniter
CodeIgniterのルーティングを徹底解説!ルートパラメータの使い方入門