Laravelルーティングの基本

ルーティングの設定方法

// ルーティングの基本的な設定方法
Route::HTTPリクエストメソッド名('URL', [コントローラ名::class, 'アクション名']);

// ルートに名前をつける場合
Route::HTTPリクエストメソッド名('URL', [コントローラ名::class, 'アクション名'])->name('ルートの名前');

// その他の設定方法
Route::HTTPリクエストメソッド名('URL', function () {
    そのURLにアクセスしたときに実行する処理
});
  • ルーティングは「このURLにアクセスしたときは○○コントローラの□□アクションを実行する」のように、ユーザーからのリクエストに応じてコントローラを選択する役割を担当する
  • HTTPリクエストメソッドとは、あるページにアクセスするときにブラウザからWebサーバーに出されるお願い(リクエスト)の種類のことである
  • name()メソッドを使うことで、ルート(経路)に名前をつけられる(名前付きルート)
  • Laravelのroute()ヘルパ関数を使うことで、名前付きルートを呼び出せる

  • アクション=コントローラに定義されたメソッドのこと

  • 名前付きルート
    基本的に名前は自由につけられますが、posts.indexのように基準となるURL.アクション名とするとわかりやすくなります。
<!-- 通常のリンク -->
<a href="/posts">投稿アプリ</a>

<!-- 名前付きルート -->
<a href="{{ route('posts.index') }}">投稿アプリ</a>

LaravelのBladeテンプレートではPHPのコードを{{と}}で囲むことで値を直接表示できます。今回の例ではroute('posts.index')の戻り値は/postsなので、上記2つのコードは最終的に同じリンクを生成します。
* 関数を指定する方法
ただ単にビューや文字列を返すといったシンプルな処理の場合、ルーティングに直接記述するのも選択肢の1つです。一方で、複雑な処理の場合はコントローラのアクション内に記述するのが望ましいです。