Laravel は、使いやすいルーティング システムを提供する人気のある PHP フレームワークです。 Laravel のルーティング システムを使用すると、さまざまな URI および HTTP リクエストのメソッドを定義できます。この記事では、Laravel でのルーティングの実装について詳しく説明します。
Laravel の基本ルーティング定義は非常にシンプルです。 Route クラスの get、post、put、delete などのメソッドを使用してルートを定義できます。
たとえば、基本的な GET ルートを定義できます:
Route::get('/hello', function () { return 'Hello, Laravel!'; });
上記のルートは、URI /hello で GET リクエスト ルートを定義し、文字列「Hello, Laravel!」を返します。
実際のアプリケーションでは、ルートにパラメータが含まれる場合があります。 Laravel のルーティング システムでは、これらのパラメーターを定義できます。 {param} 構文を使用してルート内のパラメータを定義できます。ここで、param はパラメータ名です。
たとえば、パラメータを受け入れるルートを定義できます。
Route::get('/user/{id}', function ($id) { return 'User ID: ' . $id; });
上記のルートは、id パラメータを受け入れる GET リクエスト ルートを定義します。コールバック関数では、$id 変数を使用して渡されたパラメータを取得し、ブラウザに返すことができます。
Laravel ルーティング システムでは、オプションのルーティング パラメーターを定義できます。パラメータ名の後に ? を追加するだけで、パラメータをオプションとしてマークできます。
たとえば、オプションのパラメータを使用してルートを定義できます。
Route::get('/user/{id}/{name?}', function ($id, $name = null) { if ($name) { return 'User ID: ' . $id . ', Name: ' . $name; } else { return 'User ID: ' . $id; } });
上記のルートは、id パラメータとオプションの name パラメータを受け入れる GET リクエスト ルートを定義します。コールバック関数で、$name が存在するかどうかを確認します。存在する場合は、ID と名前を一緒に返します。それ以外の場合は、id パラメータのみが返されます。
ルート パラメータが特定のルールに準拠していることを確認するために、ルート パラメータに正規表現の制約が必要になる場合があります。 Laravel では正規表現を使用してこれを行うことができます。
たとえば、正規表現制約を使用してルートを定義できます。
Route::get('/user/{id}/{name}', function ($id, $name) { return 'User ID: ' . $id . ', Name: ' . $name; })->where(['id' => '[0-9]+', 'name' => '[a-zA-Z]+']);
上記のルートは、id および name パラメータを使用して GET リクエスト ルートを定義します。コールバック関数では、これら 2 つのパラメータを一緒に返します。ルートを定義するときは、where メソッドを使用して、id パラメーターが [0-9] 正規表現に一致する必要があり、name パラメーターが [a-zA-Z] 正規表現に一致する必要があることを指定します。
Laravel ではルートの名前を定義できるため、URL の定義が簡単になります。
たとえば、名前付きルートを定義できます。
Route::get('/user/profile', function () { return 'User Profile'; })->name('profile');
上記のルートは、GET リクエスト ルートを定義し、それに profile という名前を付けます。ルートを定義するときは、name メソッドを使用して名前を指定します。これで、この名前をコード内で使用して URL を生成できるようになります。
Laravel の URL ジェネレーターを使用すると、アプリケーションの URL を簡単に生成できます。ルート関数を使用してルートの URL を生成できます。
たとえば、上記の名前付きルートを使用して URL を生成できます。
$url = route('profile');
上記のコードは、/profile を指す URL を生成します。
Laravel では、クロージャ コールバック関数を直接指定する代わりに、コントローラー メソッドへのルートを指定することもできます。このようにして、コントローラーでリクエストを一元的に処理できます。
たとえば、コントローラー ルートを定義できます。
Route::get('/user/{id}', 'UserController@show');
上記のルートは、/id パラメーターが UserController コントローラーの show メソッドを指す GET リクエスト ルートを定義します。
RESTful ルーティングを使用すると、アプリケーションの RESTful API エンドポイントを定義できます。 Laravelでは、Routeクラスのリソースメソッドを使用してRESTfulルートを定義できます。
たとえば、RESTful ルートを定義できます:
Route::resource('photos', 'PhotoController');
上記のコードは、インデックス、作成、保存、表示、編集、更新、および破棄メソッドを含むデフォルトの RESTful ルートを提供します。 。これらのメソッドは、PhotoController コントローラーでリクエストを処理するために使用されます。
概要
この記事では、Laravel ルーティングの基本について説明します。基本的なルーティング、ルーティング パラメーター、オプションのパラメーター、正規表現の制約、名前付きルーティング、URL ジェネレーター、コントローラー ルーティング、および RESTful ルーティングについて学びました。 Laravel のルーティング システムは非常に強力で、さまざまなリクエストを簡単に処理します。
以上がLaravelルーティングの実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。