本文へ移動
Laravel Tips

はじめての方へ・ステップ 5 / 12

はじめてのページを作る

routes/web.php にルートを1行足して、はじめてのページを作ります。文字を返すだけのページから、Blade のビューを使ったページ、URL の一部を受け取るページまで進みます。

いよいよ、自分でページを作ります。Laravel でページを1つ作るのに必要なのは、「この URL が開かれたら、これを返す」というルートを1つ書くことだけです。このページでは、あいさつを表示する /hello のページを作りながら、ルートとビューの基本を覚えます。

いまあるルートを見てみる#

エディタで routes/web.php を開くと、最初から次のように書かれています。

php
<?php

use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});

これは、「/(トップページ)が開かれたら、welcome というビューを返す」という意味です。前のページで見た「Let's get started」の画面は、この1行から出ていました。

  • Route::get の get は、ブラウザでふつうにページを開いたとき(GET というリクエスト)に動く、という意味です
  • 1つ目の '/' が URL、2つ目の function () { ... } が、そのとき動かす処理です。名前の無い関数なので「クロージャ」と呼びます
  • view('welcome') は、resources/views/welcome.blade.php を画面にして返します

文字を返すページを作る#

routes/web.php のいちばん下に、次を足して保存します。

php
Route::get('/hello', function () {
    return 'こんにちは!';
});

composer run dev が動いている状態で、ブラウザで http://localhost:8000/hello を開いてみましょう。「こんにちは!」と表示されれば成功です。クロージャが返した文字が、そのままブラウザに届きました。

ビューを使って HTML を返す#

ちゃんとしたページにするには、HTML を返します。HTML はルートの中に直接書かず、ビューというファイルに分けて書きます。

resources/views フォルダに、hello.blade.php という名前のファイルを作り、次のように書きます。

blade
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="utf-8">
    <title>あいさつ</title>
</head>
<body>
    <h1>こんにちは、{{ $name }} さん!</h1>
    <p>今日は {{ date('Y年n月j日') }} です。</p>
</body>
</html>

ファイル名の最後の .blade.php は、「Blade(Laravel のテンプレートの書き方)で書いたビュー」という印です。{{ }} で囲んだところには、PHP の値や式の結果が入ります。

次に、routes/web.php の /hello のルートを、ビューを返すように書きかえます。

php
Route::get('/hello', function () {
    return view('hello', ['name' => 'たろう']);
});

view() の1つ目は、ビューのファイル名から .blade.php を取ったもの。2つ目の配列は、ビューに渡すデータです。'name' => 'たろう' と渡すと、ビューの中で $name として使えます。

ブラウザを再読み込みすると、「こんにちは、たろう さん!」と、今日の日付が出ます。

URL の一部を受け取る#

名前を URL で指定できるようにしてみましょう。routes/web.php に、次のルートを足します。

php
Route::get('/hello/{name}', function (string $name) {
    return view('hello', ['name' => $name]);
});

{name} のように { } で囲んだところは、「ここには何が入ってもよい」という意味です。入っていた文字が、クロージャの引数 $name に渡されます。これをルートパラメータと呼びます。

http://localhost:8000/hello/はなこ を開くと、「こんにちは、はなこ さん!」と出ます。

補足

{{ }} で出した値は、HTML の記号が自動で無害な文字に置きかえられます。たとえば URL に <b> のようなタグを入れても、タグとしては働かず、文字のまま表示されます。悪い人がページにプログラムを埋めこむ攻撃(XSS)を防ぐためです。

ヒント

書いたルートの一覧は、ターミナルで php artisan route:list を実行すると見られます。ページが開かないときは、まずここに自分のルートがあるかを見てみましょう(composer run dev を動かしているターミナルとは別のターミナルで実行します)。

ここまでのまとめ#

やったこと 書いた場所
URL と処理を結びつける(ルート) routes/web.php
画面のひな形を書く(ビュー) resources/views/hello.blade.php
ルートからビューへデータを渡す view('hello', ['name' => 'たろう'])
URL の一部を受け取る /hello/{name} と function (string $name)

ルートの書き方はルーティングに、ビューの書き方はビューにくわしくまとめています。

次に読むページ#

公式ドキュメント(英語)

2026年10月5日時点の内容をもとに、日本語でまとめています。

ページの一覧