見出し画像

Laravel学習記録 #028 ルーティングを学ぶ

Laravelのルーティング機能について学習したものをまとめています。

Laravelでのルーティングについて

  • ルーティングはルーティングファイルに記述する

  • routesディレクトリ内のweb.phpやapi.phpなどのファイルに定義

  • web.phpはWebアプリケーション用、api.phpはAPI用のルーティング

  • HTTPメソッドに応じてリクエストを処理

  • 特定のURIへのリクエストを対応するコントローラーのメソッドに紐づけられる

  • ルートに名前を付けることができる

  • 名前付きルートは、route()ヘルパーを使用してURIを生成できる


ルーティングを定義する

マニュアルを確認しながらコードについて確認します。

ルーティング定義方法

HTTPメソッド、URI、calbackを組み合わせて定義します。

Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);

getで/greetingにアクセスされた場合、Hello Worldを返す場合は以下のようにします。

use Illuminate\Support\Facades\Route;

Route::get('/greeting', function () {
    return 'Hello World';
});

コントローラーに紐づけるならこう

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\GreetController;

Route::get('/greeting', [GreetController::class, 'hello']);

// コントローラー
public function hello() {
   return 'Hello World';
}

ルートに名前をつけるならnameメソッドで

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\GreetController;

Route::get('/greeting', [GreetController::class, 'hello'])->name('hello');


// 使うときはrouteヘルパを使うことでURIを生成できる
route('hello');


ルートパラメータ

詳細ページの表示などURLの特定の値から情報を取得したい時があります。
そんな時にはルートパラメータが使えます。

Route::get('/user/{id}', function (string $id) {
    return 'User '.$id;
});

「/user/123」というアクセスで「User 123」が返ります。
ルートパラメータは複数持たせることも可能です。


この記事が気に入ったらサポートをしてみませんか?