ホームページ  >  記事  >  PHPフレームワーク  >  laravelの各ページにルートを定義する必要があるかどうかの簡単な分析

laravelの各ページにルートを定義する必要があるかどうかの簡単な分析

PHPz
PHPzオリジナル
2023-04-03 17:55:16681ブラウズ

Laravel では、ルーティングとは、URL を対応するコントローラーのメソッドに関連付けるメカニズムを指します。 Laravel のルーティングを使用すると、アプリケーションの URL を非常に簡単に管理し、URL の使いやすさを実現し、コントローラーとメソッドを迅速かつ柔軟に見つけることができます。

それでは、ページごとにルートを定義する必要があるのでしょうか?答えはもちろんノーです。以下で詳しく説明しましょう。

典型的な Web サイト アプリケーションの場合、通常、多くのモジュールと関数が含まれており、各モジュールと関数には対応するページがあります。ページごとにルートを定義すると、非常に面倒で冗長になり、ルートが多すぎて保守が不便になります。

したがって、ルーティング設計を簡素化するためにいくつかのテクニックを使用する必要があります。

まず、いくつかのルーティング ルールを定義します。たとえば、Web サイト上のすべての記事関連ページが「/article/」で始まる場合、次のコードを通じてこれらの関連ページのルーティング ルールを定義できます。

Route::group(['prefix' => 'article'], function () {
    Route::get('/', 'ArticleController@index');
    Route::get('/detail/{id}', 'ArticleController@detail');
    Route::get('/edit/{id}', 'ArticleController@edit');
});

このようなルーティング ルールを通じて、「」にアクセスします。 /article/"はArticleControllerのindexメソッドに相当し、「/article/detail/{id}」へのアクセスはArticleControllerのdetailメソッドに相当し、「/article/edit/{id}」へのアクセスはArticleControllerのeditメソッドに相当します。 。

2 番目に、リソース ルーティングを使用して、ルーティングをより便利に管理できます。 Laravel では、リソース ルーティングは、複数の関連するルートに同じリクエスト タイプとパスを定義する非常に便利な方法です。たとえば、記事関連のリソース ルーティングを次のように定義できます:

Route::resource('article', 'ArticleController');

この時点では、次のリンクを通じて対応するコントローラー メソッドにアクセスできます:

  • GET /article:記事一覧インターフェースの表示
  • GET /article/create: 記事作成インターフェースの表示
  • POST /article: 新しい記事の作成
  • GET /article/{ id}:指定した記事の詳細インターフェイスを表示します。
  • GET /article/{id}/edit: 指定した記事を変更するためのインターフェイスを表示します。
  • PUT/PATCH /article/{id}:指定された記事
  • DELETE /article/{id}: 指定された記事を削除します

最後に、Laravel が提供する自動ルート生成メカニズムを使用して、ルーティング設計を簡素化することもできます。 Laravel では、次のコードを使用して、コントローラー内のメソッドのルートをバッチ生成できます:

Route::controller('article', 'ArticleController');

その後、次のリンクを通じて、対応するコントローラー メソッドにアクセスできます:

  • GET /article: 記事リスト インターフェイスを表示します。対応するコントローラー メソッドは getIndex()
  • GET /article/create: 記事作成インターフェイスを表示します。対応するコントローラー メソッドは getCreate()
  • POST /article: 新しい記事を作成します。対応するコントローラー メソッドは postIndex() です。
  • GET /article/{id}: 指定された記事の詳細インターフェイスを表示します。対応するコントローラー メソッドは getShow ($id)
  • GET /article/{id}/edit: 指定した記事を変更するためのインターフェイスを表示します。対応するコントローラー メソッドは getEdit($id)
  • PUT/PATCH /article/ {id} です。指定された記事を更新します。対応するコントローラー メソッドは putIndex($id)
  • DELETE /article/{id}: 指定された記事を削除します。対応するコントローラー メソッドは deleteIndex($id)

上記 3 つの方法により、ページごとにルートを定義することなく、比較的簡単にルーティングを管理できます。もちろん、これはすべてのページにルーティングが必要ないという意味ではなく、表示する必要があるページは対応するルーティングによって管理する必要がありますが、合理的な設計によってルーティングが冗長になりすぎて煩雑になることは回避できます。

以上がlaravelの各ページにルートを定義する必要があるかどうかの簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。