1 ルーティングメカニズム
MVC のルーティングは非常に重要な機能です。その機能は次のとおりです。
A. ユーザーのアクセス (URL) に従って、受信したリクエストとそのリクエストに添付されたパラメーターを照合します。リクエストを呼び出して、コントローラーのアクション メソッドをマッピングし、パラメーターを渡します。次の図は、ユーザー リクエストを単純な形式で表します。
2 Laravelルーティングの場合
Laravel 5.1.4では、ルーティング設定ファイルはapp/Http/routes.phpです。 2.1 文字列ルーティングを直接返す
元のコードの後に次のコードセグメントを追加します: Route::get('/hw', function () {
return 'Hello World';
});
以下に示すように、ブラウザを開いて http://localhost:801/hw にアクセスします。
2.2 ビューを返すルート
上記のコードに次のコードセグメントを追加します:Route::get('/home', function () { return view('home'); });次の内容を含むビューファイル home.php をディレクトリ resource/views に作成します。
<html> <body> <h1>home</h1> </body> </html>ブラウザを開いて、http://localhost:801/home
Route::get('/home', function () { return view('home', ['name' => '张三']); });ビュー コードを変更します:
<html> <body> [<?php echo $name; ?>],您好! </body> </html>訪問の効果を見てみましょう:
ビューが多すぎる場合は、通常、モジュールごと、または関数ごとに保存されます。 resource/views ディレクトリに新しいディレクトリ (public/demo) を作成し、home.php をこのディレクトリに移動します。 。
Route::get('/home', function () { return view('public.demo.home', ['name' => '张三']); });再度アクセスしたときも、通常どおりページを開くことができます。
2.3 ルーティングパラメータ
前に述べたように、ルーティングはユーザーのリクエストパラメータと一致する可能性がありますが、どのように一致させるのでしょうか?上記の例のルーティング ファイルにコード スニペットを追加します。 Route::get('user/{name}', function($name) {
return '用户姓名:'.$name;
});
2 つある場合はどうなるでしょうか。毛織物?ルーティング コードを変更します:
Route::get('user/{name}/{age}', function($name,$age) { return '用户姓名:'.$name.',年龄:'.$age; });ブラウザを開いて、http://localhost:801/user/jack/23 にアクセスします。
年齢パラメータが必要ない場合はどうすればよいですか?ルーティング コードを再度変更します:
Route::get('user/{name}/{age?}', function($name,$age=null) { return '用户姓名:'.$name.',年龄:'.$age; });アクセス アドレス: http://localhost:801/user/jack
2.4 ルーティング パラメータの制約
routes.php ファイルを変更し、次のコードを追加します:
Route::get('new/{id}', function($id) { return '新闻ID:'.$id; })->where('id', '[0-9]+');
http://localhost:801/new/abc にアクセスできる場合、指定されたページは存在しません:
同様に、複数のパラメータが同時に制限されている場合、配列を使用する必要があるため、上記の例のルーティング コードを変更します。
Route::get('new/{id}/{title}', function($id,$title) { return '新闻ID:'.$id.',新闻标题:'.$title; })->where(['id' => '[0-9]+', 'title' => '[a-z]+']);
さらに、グローバル制限を構成し、ファイル app/Providers/RouteServiceProviders.php を開き、ブート メソッドを次のように変更できます。
public function boot(Router $router)
{
//
$router->pattern('id', '[0-9]+');
parent::boot($router);
}
上記の例のルーティング コードを次のように変更します。
Route::get('new/{id}', function($id)
{
return '新闻ID:'.$id;
});
他の操作を行うために、routes.php でルーティング パラメータを取得できます。
Route::get('new/{id}', function(Request $request, $id) { if ($request->route('id') == '2') { return '新闻ID是2'; }else{ return '新闻ID不是2,值是:'.$id; } });
in Routes.php php の後の行:
use Illuminate\Http\Request;
ブラウザを開いて、http://localhost:801/new/2 と http://localhost:801/new/3 にそれぞれアクセスします。さまざまなページ効果。 ルーティングには、まだ研究が必要な複雑な機能がたくさんあります。
著作権声明: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。以上、Laravel 514 + Bootstrap 334 の紹介でした。 注 2: Laravel のルーティングについて、内容面も含めて紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。