ルートの名前付け
ルートの名前付けは、プログラムがルーティング情報を簡単に取得できるようにするためのもので、この情報を取得した後、リダイレクトなどの操作を行うことができます。ルーティング コマンドは、name メソッドを通じて実装されます。次に、ルートに名前を付けましょう:
Route::get('about', function () {})->name('index.about');
ルートに名前を付けた後、アシスタント機能のルートを通じてルートの URL を取得できます。
$url = route('index.about'); echo $url; // http://localhost:8000/about
フロントのドメイン名の部分は必要なく、バックパスだけが必要な場合は、これを行うことができます。
$url = route('index.about', [], false); echo $url; // /about
パラメータを使用してルートを定義する場合は、パラメータはルート関数として渡されます 2 番目のパラメータは
Route::get('news/{id}', 'IndexController@news')->name('home.news'); ... return redirect()->route('home.news', ['id' => 23]);
で渡されます。ルート関数の 2 番目のパラメータ配列要素は、ルーティング パラメータに自動的に対応できます。ルート関数の 2 番目のパラメータ配列要素がパラメータよりも大きい場合、ルートによって設定されると、URL を生成するための自動スプライシングが行われます。
echo route('home.news', ['id' => 23, 'page' => 3, 'page_num' => 20]); // http://localhost:8000/news/23?page=3&page_num=20
ルート グループ化
ルーティング グループ化の役割は、システムが多くのルートを設定しますが、一部のルートには同じ名前空間プレフィックスや同じパス プレフィックスなどの共通点がある場合、それらの共通点を持つルートを 1 つのルートにまとめることができるため、管理が容易になり、コードの量が多くなり、コードの見た目も良くなり、よりエレガントになります。
ルート プレフィックス
同じプレフィックスを持つルートをグループに入れます。以下は、同じプレフィックスを持つ 2 つのルートです:
Route::prefix('index')->get('a', function () { return 'a'; // 匹配/index/a }); Route::prefix('index')->get('b', function () { return 'b'; // 匹配/index/b });
今度は、それらをグループに入れます
Route::prefix('index')->group(function () { Route::get('a', function () { return 'a'; // 匹配/index/a }); Route::get('b', function () { return 'b'; // 匹配/index/b }); });
プレフィックス メソッドを使用することに加えて、グループの最初のパラメータを使用することもできます。メソッド設定は次のようになります。
Route::group(['prefix' => 'index'], function () { Route::get('a', function () { return 'a'; // 匹配/index/a }); Route::get('b', function () { return 'b'; // 匹配/index/b }); });
Namespace
Namespace も、頻繁に使用されるルーティング グループです。
Route::group(['namespace' => 'Home'], function () { Route::get('home/index', 'IndexController@index'); });
上記のコードで名前空間が設定されていない場合、上記のルートは
Route::get('home/index', 'Home\IndexController@index');
サブドメイン名
が使用されます。どのドメイン名にアクセスできるかを設定します。このドメイン名以外の場合、パスが正しくてもアクセスできません。
Route::domain('php.cn')->group(...)
名前プレフィックス
name メソッドは、各ルーティング グループのルートに特定のプレフィックスを追加できます
Route::name('abc.')->group( function () { Route::get('home', function () { })->name('home'); }); …… $url = route('abc.home');
以上がLaravel 講義 4: ルートの名前付けとルートのグループ化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。