Laravel-routing
Laravel-ルーティング
Laravelでは、すべてのリクエストはルートの助けを借りてマッピングされます。 基本ルーティングは、要求を関連するコントローラーにルーティングします。 この章では、Laravelでのルーティングについて説明します。
Laravelのルーティングには、次のカテゴリが含まれています-
- 基本的なルーティング
- ルートパラメータ
- 名前付きルート
基本的なルーティング
すべてのアプリケーションルートは、 app/routes.php ファイル内に登録されます。 このファイルは、応答するURIをLaravelに伝え、関連するコントローラーが特定の呼び出しを行います。 ウェルカムページのサンプルルートは、以下のスクリーンショットに示すように表示されます-
Route::get ('/', function () {
return view('welcome');});
例
ルーティングの詳細を理解するには、次の例をご覧ください-
*app/Http/routes.php*
<?php
Route::get('/', function () {
return view('welcome');
});
*resources/view/welcome.blade.php*
<!DOCTYPE html>
<html>
<head>
<title>Laravel</title>
<link href = "https://fonts.googleapis.com/css?family=Lato:100" rel = "stylesheet"
type = "text/css">
<style>
html, body {
height: 100%;
}
body {
margin: 0;
padding: 0;
width: 100%;
display: table;
font-weight: 100;
font-family: 'Lato';
}
.container {
text-align: center;
display: table-cell;
vertical-align: middle;
}
.content {
text-align: center;
display: inline-block;
}
.title {
font-size: 96px;
}
</style>
</head>
<body>
<div class = "container">
<div class = "content">
<div class = "title">Laravel 5.1</div>
</div>
</div>
</body>
</html>
ルーティングメカニズムは以下の画像に示されています-
ルーティングメカニズムに含まれるステップを詳細に理解しましょう-
- ステップ1 *-最初に、アプリケーションのルートURLを実行する必要があります。
ステップ2 *-実行されたURLは、 *route.php ファイル内の適切なメソッドと一致するはずです。 この場合、メソッドとルート(「/」)URLと一致する必要があります。 これにより、関連する機能が実行されます。
ステップ3 *-関数はテンプレートファイル resources/views/welcome.blade.php。*を呼び出します。
これは、以下の画像に示すようにHTML出力を生成します-
ルートパラメータ
Webアプリケーションでは、URLで渡されたパラメーターをキャプチャする必要がある場合があります。 そのためには、 routes.php ファイルのコードを変更する必要があります。
ここで説明したように、2つの方法で routes.php ファイルのパラメーターをキャプチャできます-
必須パラメーター
これらのパラメータは、Webアプリケーションをルーティングするために強制的にキャプチャする必要があるパラメータです。 たとえば、URLからユーザーの識別番号を取得することが重要です。 これは、以下に示すようにルートパラメータを定義することで可能になります-
Route::get('ID/{id}',function($id) {
echo 'ID: '.$id;
});
オプションのパラメータ
開発者はオプションでパラメータを作成できる場合があり、URLのパラメータ名の後に*?*を含めることで可能です。 パラメータ名として記載されているデフォルト値を保持することが重要です。 オプションのパラメータを定義する方法を示す次の例を見てください-
Route::get('user/{name?}', function ($name = 'finddevguides') { return $name;});
上記の例では、値が finddevguides に一致するかどうかを確認し、それに応じて定義されたURLにルーティングします。
名前付きルート
名前付きルートを使用すると、ルートを簡単に作成できます。 ルートのチェーンは、nameメソッドを使用してルート定義に指定できます。 次のコードは、コントローラで名前付きルートを作成する例を示しています-
Route::get('user/profile', 'UserController@showProfile')->name('profile');
ユーザーコントローラーは、パラメーターを profile にして関数 showProfile を呼び出します。 パラメーターは、ルート定義に対して name メソッドを使用します。