ルーティングアクセスアドレス
コントローラー/オペレーションへのルーティング
これは、最も一般的に使用されるルーティング方法です。ルーティング ルールは、次の場所にルーティングされます。関連するコントローラとオペレーション、そしてシステムは関連するオペレーションの実行をスケジュールします。形式は次のとおりです:
コントローラ/オペレーション
解析ルールはオペレーションから解析されます。次に、コントローラを解析します。例:
// 路由到blog控制器 Route::get('blog/:id','Blog/read');
ブログ クラスは次のように定義されています:
<?php namespace app\index\controller; class Blog { public function read($id) { return 'read:' . $id; } }
ルーティング アドレスはマルチレベル コントローラをサポートしており、次のメソッドを使用して設定します:
Route::get('blog/:id','group.Blog/read');
は、次のコントローラー クラスへのルーティングを意味します。
index/controller/group/Blog
は、動的アプリケーション、コントローラー、または操作へのルーティングもサポートできます。例:
// action变量的值作为操作方法传入 Route::get(':action/blog/:id', 'Blog/:action');
クラス メソッドへのルーティング
このルーティング方法は、任意のクラスのメソッドの実行をサポートでき、コントローラー操作メソッドの実行に限定されません。
ルーティング アドレスの形式は、(動的メソッド):
\complete クラス名@メソッド名
または (静的メソッド)
\complete です。クラス名::メソッド名
たとえば、
Route::get('blog/:id','\app\index\service\Blog@read');
は、\app\index\service\Blog クラスの read メソッドを実行します。
また、次のような静的メソッドの実行もサポートしています。
Route::get('blog/:id','\app\index\service\Blog::read');
リダイレクト ルート
Route::redirect('blog/:id', 'http://blog.thinkphp.cn/read/:id', 302);
テンプレートへのルーティング
// 路由到模板文件 Route::view('hello/:name', 'index/hello');は、このルートが現在のアプリケーションで view/index/hello.html テンプレート ファイルの出力をレンダリングすることを意味します。 現在のリクエストの param 変数は、テンプレート ファイルに直接出力できます。追加のテンプレート変数を追加する必要がある場合は、次を使用できます:
Route::view('hello/:name', 'index/hello', ['city'=>'shanghai']);名前と都市の変数を出力できますテンプレート内にあります。
Hello,{$name}--{$city}!
応答オブジェクトへのルーティング
Route::get('hello/:name', response() ->data('Hello,' . $name) ->code(200) ->contentType('text/plain'));その他のケースリソース ファイル リクエストに対して直接 Set 404 アクセスを設定します。
// 对于不存在的static目录下的资源文件设置404访问 Route::get('static', response()->code(404));
クロージャへのルート
Route::get('hello', function () { return 'hello,world!'; });
パラメータの受け渡し
Route::get('hello/:name', function ($name) { return 'Hello,' . $name; });ルール ルーティングで定義された動的変数の名前は、クロージャ関数のパラメータ名であり、順不同です。 したがって、アクセスする URL アドレスが
http://serverName/hello/thinkphpである場合、ブラウザによる結果出力は次のようになります: Hello, thinkphp
依存関係の注入
クロージャで依存関係の注入を使用できます。例:Route::rule('hello/:name', function (Request $request, $name) { $method = $request->method(); return '[' . $method . '] Hello,' . $name; });