0Pricing
PHP Academy · レッスン

Laravelでルートを定義する

web.phpとapi.phpにGET、POST、リソースルートを登録します

「Laravelでルートを定義する」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。

基本的なルート

文字列のレスポンスを返す GET ルートを定義します。

<?php
use Illuminate\Support\Facades\Route;

Route::get("/hello", function () {
    return "Hello, Laravel!";
});

HTTP 動詞のメソッド

Laravel には、get、post、put、patch、delete、options のルートメソッドがあります。

<?php
Route::post("/users", [UserController::class, "store"]);
Route::put("/users/{id}", [UserController::class, "update"]);
Route::delete("/users/{id}", [UserController::class, "destroy"]);

ルートパラメーター

{param} を使って URI のセグメントを取得します。省略可能なセグメントには {param?} を使います。

<?php
Route::get("/users/{id}", function (int $id) {
    return "User ID: $id";
});
// Optional:
Route::get("/posts/{slug?}", function (?string $slug = null) { });

名前付きルート

リダイレクトや URL 生成で使用するために、ルートに名前を付けます。

<?php
Route::get("/dashboard", [DashboardController::class, "index"])->name("dashboard");

// Elsewhere:
return redirect()->route("dashboard");
$url = route("dashboard");

ルートグループ

ミドルウェア、プレフィックス、または名前空間を共有するルートをグループ化します。

<?php
Route::middleware("auth")->prefix("admin")->group(function () {
    Route::get("/dashboard", [AdminController::class, "index"]);
    Route::get("/users",     [AdminController::class, "users"]);
});

リソースルート

Route::resource() を使うと、コントローラー用の7つの RESTful ルート(index、create、store、show、edit、update、destroy)を1行で登録できます。

<?php
Route::resource("posts", PostController::class);
// GET /posts, GET /posts/create, POST /posts, GET /posts/{post}
// GET /posts/{post}/edit, PUT/PATCH /posts/{post}, DELETE /posts/{post}

API リソースルート

Route::apiResource() は5つのルートを登録します(フォームを返す create と edit は除外されます)。

<?php
Route::apiResource("users", UserController::class);

ルートモデルバインディング

ルートのクロージャまたはコントローラーメソッドでモデルを型指定すると、Laravel が主キーに基づいてモデルを自動的に取得します。

<?php
Route::get("/users/{user}", function (User $user) {
    return $user; // Laravel fetches User::findOrFail($user)
});

ルート制約

正規表現を使用して、ルートパラメーターの形式を制限します。

<?php
Route::get("/users/{id}", handler)->where("id", "[0-9]+");
Route::get("/users/{slug}", handler)->where("slug", "[a-z-]+");

any() と match()

Route::any() はすべての HTTP メソッドに応答します。Route::match() は指定したメソッドの一覧に応答します。

<?php
Route::match(["get", "post"], "/contact", ContactController::class);

登録済みルートの確認

登録済みのすべてのルートを、メソッド、名前、アクションとともに一覧表示します。

$ php artisan route:list

まとめ

Laravel のルートは routes/web.php と routes/api.php に定義します。CRUD にはリソースルート、モデルの自動注入にはルートモデルバインディング、URL の生成には名前付きルートを使用します。

確認問題

7 つの RESTful ルートを一度に登録するコマンドはどれですか?

よくある質問

「Laravelでルートを定義する」レッスンは無料ですか?

はい。「Laravelでルートを定義する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。

「Laravelでルートを定義する」で何を学びますか?

web.phpとapi.phpにGET、POST、リソースルートを登録します ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

PHP Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「Laravelでルートを定義する」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPHP Academyレッスンでコードを書いて実行できますか?

はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Laravelのプロジェクト構成
  2. Laravelでルートを定義する
  3. コントローラーとアクション
  4. Bladeテンプレートとビュー
← PHP Academyに戻る