はじめての方へ・ステップ 5 / 12
はじめてのページを作る
routes/web.php にルートを1行足して、はじめてのページを作ります。文字を返すだけのページから、Blade のビューを使ったページ、URL の一部を受け取るページまで進みます。
いよいよ、自分でページを作ります。Laravel でページを1つ作るのに必要なのは、「この URL が開かれたら、これを返す」というルートを1つ書くことだけです。このページでは、あいさつを表示する /hello のページを作りながら、ルートとビューの基本を覚えます。
いまあるルートを見てみる#
エディタで routes/web.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 のいちばん下に、次を足して保存します。
Route::get('/hello', function () {
return 'こんにちは!';
});
composer run dev が動いている状態で、ブラウザで http://localhost:8000/hello を開いてみましょう。「こんにちは!」と表示されれば成功です。クロージャが返した文字が、そのままブラウザに届きました。
ビューを使って HTML を返す#
ちゃんとしたページにするには、HTML を返します。HTML はルートの中に直接書かず、ビューというファイルに分けて書きます。
resources/views フォルダに、hello.blade.php という名前のファイルを作り、次のように書きます。
<!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 のルートを、ビューを返すように書きかえます。
Route::get('/hello', function () {
return view('hello', ['name' => 'たろう']);
});
view() の1つ目は、ビューのファイル名から .blade.php を取ったもの。2つ目の配列は、ビューに渡すデータです。'name' => 'たろう' と渡すと、ビューの中で $name として使えます。
ブラウザを再読み込みすると、「こんにちは、たろう さん!」と、今日の日付が出ます。
URL の一部を受け取る#
名前を URL で指定できるようにしてみましょう。routes/web.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日時点の内容をもとに、日本語でまとめています。