こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。
この記事では、 PHPのフレームワークの1つであるLaravelでコントローラーからBladeビューに値を渡す方法を丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
Laravelのバージョン | 8.10.0 |
この記事では
C:\Laravel\LaravelSample
配下にLaravelのプロジェクトを作成しています。
コントローラーからBladeビューに値を渡す方法
コントローラーからBladeビューに値を渡す方法を解説します。
- コントローラーで値を渡す方法
- Bladeビューで渡された値を表示する方法
という順番で解説します。
コントローラーで値を渡す方法
コントローラーで値を渡すには、view関数の第一引数に遷移先のBladeビュー、第二引数に渡したい値を連想配列で設定します。
1 |
return view('printsample', ['sample' => 'サンプル', 'test' => 'test']); |
第二引数で値を指定する場合、
- array関数
- compact関数
のどちらかで指定してあげると、スッキリと書くことができます!
1 2 3 |
$sample = 'サンプル'; $test = 'テスト'; return view('printsample', compact('sample', 'test')); |
それぞれの関数の詳細な解説については、以下の記事をご参考ください。
Bladeビューで渡された値を表示する方法
Bladeビューで渡された値を表示するには、コントローラーから渡された連想配列の要素のキーを
1 |
{{$sample}} |
というように指定すれば、表示することができます。
では、次の章で実際に使ってみます。
コントローラーからBladeビューに値を渡し方を解説するプログラムの概要
コントローラーからBladeビューに値を渡し方を解説するプログラムは、
- コントローラー
- Bladeビュー
- web.php
3つを使います。
コントローラーは名前を【SampleController.php】とし、compact関数で渡す値を作成しBladeビューに渡します。
Bladeビューではコントローラーから受け取った値を表示します。
Bladeビューは名前を【printsample.blade.php】とし、viewsディレクトリ直下に格納します。
web.phpには、【http://〇〇.〇〇.〇〇:8000/printsample】でアクセスした場合、【printsample.blade.php】を呼ぶ関数を呼ぶように定義します。
ちなみにweb.phpとは、ルーティングを定義することができるファイルです。
詳しくはこちらの記事をご参考ください。
SampleController.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; class SampleController extends Controller { public function showValue(){ $name = '田中'; $age = 60; return view('printsample', compact('name', 'age')); } } |
printsample.blade.phpのサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>サンプル</title> </head> <body> <h1>コントローラーからの値を表示するサンプルページ</h1> <p>名前:{{$name}}さん</p> <p>年齢:{{$age}}歳</p> </body> </html> |
web.phpのサンプルプログラム
1 2 3 4 5 6 7 |
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\SampleController; Route::get('/printsample', [SampleController::class, 'showValue']); |
実行して確認
本当にコントローラーからBladeビューに値を渡すことができているのかを実行して確認します。
Laravelでサーバーを立ち上げるコマンドは
1 |
php artisan serve |
です。
サーバーを立ち上げるコマンドの詳細な説明は、こちらの記事をご参考ください。
- http://〇〇〇.〇〇〇.〇〇〇.〇〇〇:8000/printsample
※コマンドプロンプトに記載されているURL - http://localhost:8000/printsample
どちらかのURLにアクセスすれば、コントローラーからBladeビューに値が渡っていることが確認できます!
まとめ:コントローラーからBladeビューに値を渡してみよう
以上がLaravelでコントローラーからBladeビューに値を渡すやり方の解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント