ホームページ > PHPフレームワーク > Laravel > Laravel 講義 4: ルートの名前付けとルートのグループ化

Laravel 講義 4: ルートの名前付けとルートのグループ化

齐天大圣
リリース: 2020-12-10 09:10:47
オリジナル
2483 人が閲覧しました

ルートの名前付け

ルートの名前付けは、プログラムがルーティング情報を簡単に取得できるようにするためのもので、この情報を取得した後、リダイレクトなどの操作を行うことができます。ルーティング コマンドは、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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート