Laravelのルーティング(routes/web.phpの基本とController連携) – 4/12

前回は Laravelのディレクトリ構造 を解説しました。

今回はその中でも最初に触ることになる

ルーティング(Routing)

を解説します。

ルーティングは

URLと処理をつなぐ仕組み

で、Laravel開発の入口になります。

この記事では次の内容を解説します。

  • ルーティングとは何か
  • routes/web.phpの基本
  • GET / POSTの使い分け
  • Controllerとの連携
  • 実務での書き方

ルーティングとは

ルーティングとは

URLと処理の対応付け

です。

例えば

/users

にアクセスしたときに

ユーザー一覧を表示

という処理を実行する仕組みです。


routes/web.php

Laravelではルーティングは次のファイルに書きます。

routes/web.php

このファイルが

Web画面の入口

になります。


最もシンプルなルート

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

このコードの意味

  • / にアクセスすると
  • Hello Laravel を表示

ブラウザで確認

http://127.0.0.1:8000/

にアクセスすると

Hello Laravel

が表示されます。


GETとPOST

ルーティングには種類があります。


GET

Route::get('/users', function () {
    return 'Users';
});

用途

  • ページ表示
  • データ取得

POST

Route::post('/users', function () {
    return 'Create User';
});

用途

  • データ登録
  • フォーム送信

ルートパラメータ

URLに値を渡すこともできます。

Route::get('/users/{id}', function ($id) {
    return $id;
});

アクセス

/users/10

結果

10

複数パラメータ

Route::get('/users/{id}/{name}', function ($id, $name) {
    return $name;
});

Controllerとの連携

実務では 無名関数ではなくControllerを使います。


Controller作成

php artisan make:controller UserController

Controller例

class UserController extends Controller
{
    public function index()
    {
        return 'User List';
    }
}

ルート設定

use App\Http\Controllers\UserController;

Route::get('/users', [UserController::class, 'index']);

ルーティングの流れ

URLアクセス
↓
routes/web.php
↓
Controller
↓
View

これがLaravelの基本構造です。


名前付きルート

ルートに名前を付けることができます。

Route::get('/users', function () {
    return 'Users';
})->name('users.index');

使用例

route('users.index');

メリット

  • URL変更に強い
  • 管理しやすい

リダイレクト

Route::redirect('/home', '/users');

Viewを返す

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

ルート一覧確認

php artisan route:list

表示例

GET   /users   UserController@index

実務でのルーティング

実務では次のように書きます。

Route::get('/users', [UserController::class, 'index']);
Route::post('/users', [UserController::class, 'store']);
Route::get('/users/{id}', [UserController::class, 'show']);

RESTfulルーティング

Laravelでは次のような構成が一般的です。

URL処理
GET /users一覧
POST /users作成
GET /users/{id}詳細
PUT /users/{id}更新
DELETE /users/{id}削除

resourceルート

まとめて定義できます。

Route::resource('users', UserController::class);

よくあるミス


ルートが反映されない

php artisan serve 再起動

Controllerが見つからない

use の書き忘れ

URLミス

/users と /user の違い

まとめ

この記事では Laravelのルーティング を解説しました。

重要なポイント

  • ルーティングはURLと処理をつなぐ
  • routes/web.php に書く
  • Controllerと連携する
  • GET / POSTを使い分ける

Laravel開発ではルーティングがすべての入口になります。


次の記事

次回は

LaravelのController

を解説します。

  • Controllerの役割
  • メソッド設計
  • ルーティングとの関係

を詳しく説明します。

コメント

タイトルとURLをコピーしました