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

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は、画面の見た目(ビュー)を作る仕組みです。
コントローラで処理したデータをBladeに渡して画面に表示したいとき、変数を渡す必要があります。
この「変数を渡す」というのは、簡単に言うとコントローラから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開発が一気に楽しくなりますよ。」

関連記事:
カテゴリの一覧へ
新着記事
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でルートをBladeテンプレートに記述する方法(route関数)
No.7
Java&Spring記事人気No7
Laravel
Laravelのルートキャッシュ機能を活用してパフォーマンス改善!初心者でもわかる完全ガイド
No.8
Java&Spring記事人気No8
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)