こんにちは、ヨロと申します。
今回作るのはこれ。
今回は、この画像の「寿司太郎」という部分と「寿司ネタ」の部分のデータを、
「web.php」に登録をして「index.blade.php」で呼び出しています。
今回は、これらを作る事で「Laravel(Bladeテンプレート)」でのデータの取得, 呼び出し方、
View(ビュー)にデータを渡す方法についての、基本的な部分について軽く学ぼうというお話。
Laravel基礎|データを取得、ビュー(View)にデータを送る、渡す方法
という事でまずは、基本的な見た目の部分(レイアウト)
layout.blade.php
<!DOCTYPE html>
<html>
<head>
<title>@yield('title')</title>
</head>
<body>
@yield('content')
</body>
</html>
そして次に「web.php」
web.php
<?php
Route::get('/', function () { // ホームページにきたら~
$sushis = [
'まぐろ',
'たこ',
'うに',
'いくら',
];
// ここで登録し、{{ $**** }} で呼び出す - index.blade.php
return view('index', [
'sushis' => $sushis,
'name' => '寿司太郎' // => の後に何でも入れれる。
]);
});
// return文
return view('index', [
'sushis' => $sushis,
'name' => '寿司太郎'
]);
このリターン文の部分に関しては「withメソッド」を使ったこんな書き方も可能。
withメソッド
return view('index')->withSushis($sushis)->withName('寿司太郎');
その場合はこんな感じになる。
web.php
<?php
Route::get('/', function () { // ホームページにきたら~
$sushis = [
'まぐろ',
'たこ',
'うに',
'いくら',
];
return view('index')->withSushis($sushis)->withName('寿司太郎');
});
これでも結果は同じ。
次に「index.blade.php」
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テンプレート)」の場合だと、
Laravel – foreach文
<?php foreach ($sushis as $neta) : ?>
<li><?= $neta; ?></li>
<?php endforeach; ?>
↓
↓
↓
@foreach ($sushis as $neta)
<li>{{ $neta }}</li>
@endforeach
と、こんな感じでもっとシンプルに見やすく書く事が出来る。
その結果「index.blade.php」の中身はこんな感じ ↓
index.blade.php
@extends('layout')
@section('title', 'お寿司屋さん')
@section('content')
<h2>お寿司屋さん:{{ $name }}</h2>
@foreach ($sushis as $neta)
<li>{{ $neta }}</li>
@endforeach
@endsection
終わり。