グッズ

Laravel: laravel ルーティングの紹介

Laravel のルーティングにより、ユーザーはすべてのアプリケーション要求を適切なコントローラーにルーティングできます。 Laravel のほとんどのプライマリ ルートは、Uniform Asset Identifier とクロージャーを認識して受け入れ、シンプルで表現力豊かなルーティング方法を提供します。

ルート(ルート)とは?

パスは、アプリケーションのリクエスト URL を作成する方法です。 これらの URL は、Web サイト上の特定のファイルに関連付ける必要はなく、人間が判読でき、SEO フレンドリーです。

Laravelでは、パスはleフォルダー内に作成されます routes. それらはファイルに作成されます web.php ウェブサイト用、および内部 api.php API 用。

これらの route グループに割り当てられます middleware ネットワーク、セッション ステータスとセキュリティの強調表示 CSRF. のルート route/api.php それらはステートレスであり、API ミドルウェア グループに割り当てられます。
プリインストールdefiLaravel nita には XNUMX つのパスが付属しており、XNUMX つは Web 用、もう XNUMX つは API 用です。 Web へのパスは次のようになります web.php:

Route::get('/', function () {
   return view('welcome');
});

Laravel のルートとは何ですか?

すべての Laravel パスは、 defiディレクトリ内にあるパスファイル内の niti routes。 ルート管理アプリは、 defiファイルに記入されている App\Providers\RouteServiceProvider、これらのファイルを自動的に整列させます。 ファイル route/web.php defiWeb インターフェースのパスを終了します。

あなたができます defiこのコントローラー アクションのパスを次のように指定します。

Route::get(‘user/{id}’, ‘UserController@show’);

Route::resource: メソッド Route::resource アプリケーションに必要なすべての基本パスを生成し、コントローラー クラスを通じて管理されます。

リクエストが指定されたルート URI と一致すると、メソッドが呼び出されます show defiコントローラーで完成 App\Http\ControllersUserController、ルート パラメーターをメソッドに渡します。

リソースについては、アプリケーションで XNUMX つのことを行う必要があります ララベル. まず、リソース パスを作成する必要があります。 ララベル 挿入、更新、表示、および削除のパスを提供します。 次に、挿入、更新、表示、および削除のメソッドを提供するリソース コントローラーを作成します。

プリインストールdefiLaravel nita には XNUMX つのパスが付属しています。XNUMX つは Web 用、もう XNUMX つは API 用です。 web.php での Web へのルートは次のようになります。

Route::get(‘/’, function () {

return view(‘welcome’);

});

Laravel ミドルウェア リクエストとリアクションの間のブリッジとして機能します。 これは、ある種のフィルタ コンポーネントである可能性があります。

ララベル で作業する ミドルウェア クライアントアプリケーションが検証されているかどうかを確認するタスクがあります。 クライアントが確認されると、リダイレクトがホームページまたはログイン ページにルーティングされます。

のメソッド route

前のコード defiホームページへのパスを終了します。 このルートがリクエストを受信するたびに get 以下のために /、を返します view welcome

すべての Laravel パスは、 defiあなたの中のニティ routing、ディレクトリ dei 内にあります routes. その結果、 l'AppProvidersRouteServiceProvider アプリケーションのこれらのレコードを並べます。 ファイル route/web.php Web インターフェイス用に管理されているルートが含まれています。

パス構造は非常に単純です。 適切なファイルを開きます (`web.phpo `api.php) コード行を次のように開始します `Route:: `、その後にその特定のルートに割り当てるリクエストを続けてから、リクエストに続いて実行される機能を指定します。

Laravel は以下のパスメソッドを提供します:

  • get
  • post
  • put
  • delete
  • patch
  • options

パスは次のとおりです。 defiLaravel では、HTTP を使用して Route クラス内で接続され、応答およびクローズするルート、またはコントローラーが指定されます。

Laravelでパスを作成する方法

Laravel で独自のパスを作成する方法を見てみましょう。

基本的な GET パス

次に、2 の時間表を出力する基本的なパスを作成します。

Route::get('/table', function () {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * 2 = ". $i*2 ."<br>";
   }   
});

上記のコードでは、URL の GET リクエスト パスを作成しました。 /table、画面に 2 のタイム テーブルを出力します。

同じコードを見てみましょう。乗算表が必要な数値をパラメーター化します。

Route::get('/table/{number}', function ($number) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

コードでは 'number中括弧の間の ' は、パラメーター、つまり乗算表が計算される数を表します。 タイプの URL が指定されるたびに /table/n、数表が印刷されます n.

両方の機能を XNUMX つのパスに組み合わせる方法もあります。 Laravel は、疑問符「?」を使用してオプションのパラメータを追加できるオプションのパラメータ機能を提供します。 オプションのパラメータと前の値の後defiナイト。 例を見てみましょう:

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
});

上記のコードでは、ルート パラメータを作成し、番号をオプションにしました。/table` デフォルトで 2 のテーブルが生成されますdefinite で、ユーザーが ` にルーティングした場合/table/{number}続いて数表 'number' 生産されます。

ルート パラメーターの制約としての正規表現

前の例では、乗算テーブルを生成するためのパスを作成しましたが、乗算テーブルを生成する際のエラーを回避するために、パスのパラメーターが実際に数値であることを確認するにはどうすればよいでしょうか?

Laravelではできること defi` メソッドを使用してルートパラメータの制約を解除しますwhere`ルートインスタンスで。 `where` は、パラメーター名とそのパラメーターの正規表現を取ります。

イノベーションニュースレター
イノベーションに関する最も重要なニュースをお見逃しなく。 メールで受け取るにはサインアップしてください。

` パラメータの制約の例を見てみましょう。{numero}` 関数に数値のみが渡されるようにします。

Route:: get ( '/table/{numero?}' , funzione ( $numero = 2 ) {    
   for( $i = 1 ; $i < = 10 ; $i + + ) {   
       echo "$i * $numero = " . $i * $numero . "<br>" ; 
   }   
} )->where( 'numero' , '[0-9]+' ) ;

上記のコードでは、パス番号に正規表現を使用しました。 ここで、ユーザーがルーティングしようとすると、 /テーブル/いいえ 表示されます NotFoundHttpException 例外。

制御機能付きLaravelルーティング

Laravelではできること defiパスのコントローラーメソッドを完成させます。 コントローラー メソッドはすべてのアクションを実行します defiユーザーがルートにアクセスするたびに nite が実行されます。
次のコードでは、コントローラー メソッドを割り当てています。 'functionname' ルートへ:

Route:: get ( '/home' , 'YourController@functionname' ) ;

コードはで始まります `Route::` その後 defiパスのリクエストメソッドを終了します。 続いて、 defiメソッド名の前に @ 記号を追加して、メソッドとともにパスとコントローラーを完成させます。

パスに名前を付ける

Laravelではできること defiパスの名前を付けます。 この名前は多くの場合非常に便利です。 たとえば、ユーザーをある場所から別の場所にリダイレクトする必要はありません。 defi完全なリダイレクト URL を入力します。 彼の名前を教えてください。 あなたはできる defi`メソッドを使用してルート名を仕上げますname`ルートインスタンスで。

Route::get('/table/{number?}', function ($number = 2) {
   for($i =1; $i <= 10 ; $i++){
       echo "$i * $number = ". $i* $number ."<br>";
   }   
})->where('number', '[0-9]+')->name(‘table’);

これで、次のコードを使用して、このパスの URL を再生成できました。

$url = route('table');

同様に、この URL にリダイレクトする場合、正しい構文は次のようになります。

return redirect()->route('table');

Route Groups

I Route Groups、文字通りパスグループは、パスをグループ化できるLaravelの重要な機能です。 パス グループは、グループ化されたすべてのパスに属性を適用する場合に便利です。 パス グループを使用する場合、属性を各パスに個別に適用する必要はありません。 これにより、重複が回避されます。 次のような属性を共有できます middleware o namespaces、センザ defi個々のパスごとにこれらの属性を終了します。 これらの共有属性は、メソッドの最初のパラメータとして配列形式で渡すことができます。 Route::group.

ルート グループの構文

Route::group([], callback);  

どこ []: 最初のパラメーターとして group メソッドに渡される配列です。

の例 Route Groupweb.php

Route::group([], function()  
{  
   Route::get('/first' , function()  
   {  
      echo "first way route" ;   
   });  
   Route::get('/second' , function()  
   {  
      echo "second way route" ;   
   });  
   Route::get('/third' , function()  
   {  
      echo "third way route" ;   
   });  
});  

コードでは、 defi方法を見つけてみましょう グループ()、つまりXNUMXつのパラメーターが含まれています array e closure. 内部 closure、 私たちはできる defi何個終わらせるか route 私たちが望んでいます。 上記のコードでは、 defiXNUMXつ終わった route.

ブラウザ経由で URL にアクセスする場合 localhost/myproject/first その後、最初のものが介入します route ブラウザに入力する first way route.

URL付き localhost/myproject/second 次にXNUMX番目が来る route ブラウザに入力する second way route.

URLとともに localhost/myproject/third それからXNUMX番目が来ます route ブラウザに入力する third way route.

のプレフィックス Route Groups

の接頭辞 route 複数の URL に共通の URL 構造を提供したい場合に使用されます。 route.

すべてのパスにプレフィックスを指定できます defiのプレフィックス配列オプションを使用したグループ内のナイト Route Groups.

の例 web.php

Route::group(['prefix' => 'movie'], function()  
{  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
});  

コードには、次の URL からアクセスできる XNUMX つのパスが含まれています。

/movie/godfather  --->   Godfather casting

/movie/pulpfiction  --->   Pulp Fiction casting

/movie/forrestgump  --->   Forrest Gump casting

ミドルウェア

グループ内のすべてのルートにミドルウェアを割り当てることもできます。 ミドルウェアは次のとおりである必要があります defiグループを作成する前に完了しました。 これを行う方法については、記事をご覧ください Laravelミドルウェアの仕組み.

例:

Route::middleware(['age'])->group( function()  
{  
  
   Route::get('/godfather',function()  
   {  
     echo "Godfather casting";  
   });  
   Route::get('/pulpfiction',function()  
   {  
     echo "Pulp Fiction casting";  
   });  
   Route::get('/forrestgump',function()  
   {  
     echo "Forrest Gump casting";  
   });  
  
});  

パス名のプレフィックス

この方法 name の各名前の接頭辞として使用されます route 指定された文字列で。 メソッドでは nameの場合、接頭辞に末尾の文字を含む文字列を指定する必要があります。

web.php

Route::name('movie.')->group(function()  
{  
   Route::get('users', function()  
   {  
      return "movie.films";  
   })->name('films');  
});  

Ercole Palmeri

イノベーションニュースレター
イノベーションに関する最も重要なニュースをお見逃しなく。 メールで受け取るにはサインアップしてください。

最近の記事

カターニア総合病院での Apple ビューアによる拡張現実への革新的な介入

Apple Vision Pro 商用ビューアを使用した眼形成手術がカターニア総合病院で行われました。

3月2024

子供のためのぬり絵の利点 - すべての年齢層のための魔法の世界

ぬり絵を通じて細かい運動能力を発達させることで、子供たちは書くなどのより複雑なスキルを習得できるようになります。色…

2月2024

未来はここにあります: 海運業界が世界経済をどのように変革しているか

海軍部門は真の世界経済大国であり、150 億市場に向けて舵を切り続けています...

1月2024

パブリッシャーと OpenAI が人工知能によって処理される情報の流れを規制する契約に署名

先週の月曜日、フィナンシャル・タイムズ紙はOpenAIとの契約を発表した。 FT は世界クラスのジャーナリズムにライセンスを供与しています…

4月30 2024

あなたの言語でイノベーションを読む

イノベーションニュースレター
イノベーションに関する最も重要なニュースをお見逃しなく。 メールで受け取るにはサインアップしてください。

Seguici