ルーティングの設定方法
// ルーティングの基本的な設定方法 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つです。一方で、複雑な処理の場合はコントローラのアクション内に記述するのが望ましいです。