L

ビューを返す — コントローラから画面へ

コントローラからBladeビューを返し、変数を画面に渡して表示する基本を学びます。

広告枠(記事上)— 本番では AdSense 広告が表示されます

ここまでは文字列を返すだけでしたが、実際のWebアプリではHTMLの画面を返します。Laravel では ビュー を使って画面を組み立てます。ビューのファイルは resources/views/ に置き、.blade.php という拡張子を付けます。

ビューファイルを作る

resources/views/users.blade.php を作成し、次のように書きます。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>ユーザー一覧</title>
</head>
<body>
    <h1>ユーザー一覧</h1>
</body>
</html>

コントローラからビューを返す

view() ヘルパに ビュー名(拡張子 .blade.php を除いた名前)を渡します。

public function index()
{
    return view('users');
}

/users にアクセスすると、users.blade.php の内容が表示されます。

ビューに変数を渡す

view() の第2引数に配列を渡すと、ビュー側でその変数を使えます。

public function index()
{
    $users = ['田中', '佐藤', '鈴木'];

    return view('users', ['users' => $users]);
}

ビュー側では {{ }} で変数を表示します。@foreach でループも書けます。

<h1>ユーザー一覧</h1>
<ul>
    @foreach ($users as $user)
        <li>{{ $user }}</li>
    @endforeach
</ul>

{{ }} は値を自動でHTMLエスケープするため、安全に出力できます。

サブディレクトリのビュー

ビューを resources/views/users/index.blade.php のように整理した場合は、ドット記法で指定します。

return view('users.index');

まとめ

  • ビューは resources/views/.blade.php で置く。
  • コントローラから view('ビュー名') で画面を返す。
  • view('名前', ['key' => $value]) で変数を渡し、ビューでは {{ $key }} で表示。
  • {{ }} は自動エスケープされ安全。サブディレクトリはドット記法(users.index)。
  • 次の章では、この Blade テンプレート を本格的に学びます。
広告枠(記事下)— 本番では AdSense 広告が表示されます