こんにちは、ikuxxと申します。
今回作るのはこれ。
今回は、この画像の「寿司太郎」という部分と「寿司ネタ」の部分のデータを、
「web.php」に登録をして「index.blade.php」で呼び出しています。
今回は、これらを作る事で「Laravel(Bladeテンプレート)」でのデータの取得, 呼び出し方、
View(ビュー)にデータを渡す方法についての、基本的な部分について軽く学ぼうというお話。
タイトル
という事でまずは、基本的な見た目の部分(レイアウト)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// layout.blade.php <!DOCTYPE html> <html> <head> <title>@yield('title')</title> </head> <body> @yield('content') </body> </html> |
そして「web.php」
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
// web.php <?php Route::get('/', function () { // ホームページにきたら~ $sushis = [ 'まぐろ', 'たこ', 'うに', 'いくら', ]; // ここで登録し、{{ $**** }} で呼び出す - index.blade.php return view('index', [ 'sushis' => $sushis, 'name' => '寿司太郎' // => の後に何でも入れれる。 ]); }); |
1 2 3 4 5 6 7 8 9 |
// return文 return view('index', [ 'sushis' => $sushis, 'name' => '寿司太郎' ]); |
このリターン文の部分に関しては「withメソッド」を使ったこんな書き方も可能。
1 2 3 |
// withメソッド return view('index')->withSushis($sushis)->withName('寿司太郎'); |
その場合はこんな感じになる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// web.php <?php Route::get('/', function () { // ホームページにきたら~ $sushis = [ 'まぐろ', 'たこ', 'うに', 'いくら', ]; return view('index')->withSushis($sushis)->withName('寿司太郎'); }); |
これでも結果は同じ。
次に「index.blade.php」
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// index.blade.php @extends('layout') @section('title', 'お寿司屋さん') @section('content') <h2>お寿司屋さん:{{ $name }}</h2> <?php foreach ($sushis as $neta) : ?> <li><?= $neta; ?></li> <?php endforeach; ?> @endsection |
今回使ったのは「foreach文」
「foreach文」は、先頭のデータから順に繰り返し処理を行うための命令で、
今回は適当に、$netaという名前にしましたが、分かりやすければ$sushisの$sushiだろうが何でもOK。
この場合、$sushisという箱の中に$netaというデータ群があるという意味合いで、
$sushisという箱の中から$netaというデータ群を一つずつ順番に取り出して表示させる作業、
この書き方が、昔ながらの通常の「PHP」の書き方、
ただ、この場合だとちょっと見た目が悪い。
なので「Laravel(Bladeテンプレート)」の場合だと、
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// Laravel - foreach文 <?php foreach ($sushis as $neta) : ?> <li><?= $neta; ?></li> <?php endforeach; ?> ↓ ↓ ↓ @foreach ($sushis as $neta) <li>{{ $neta }}</li> @endforeach |
と、こんな感じでもっとシンプルに見やすく書く事が出来る。
その結果「index.blade.php」の中身はこんな感じ ↓
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// index.blade.php @extends('layout') @section('title', 'お寿司屋さん') @section('content') <h2>お寿司屋さん:{{ $name }}</h2> @foreach ($sushis as $neta) <li>{{ $neta }}</li> @endforeach @endsection |
終わり。
プログラミングが難しい, 挫折した, 勉強法が分からないという人におすすめのプログラミングスクール