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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Laravelのプロジェクト構成
- Laravelでルートを定義する
- コントローラーとアクション
- Bladeテンプレートとビュー