カテゴリ: Laravel 更新日: 2025/12/15

LaravelのルーティングでHTTPメソッドを指定する方法!初心者にもわかるget・postなどの使い分け

LaravelのルーティングでHTTPメソッドを指定する方法(get, postなど)
LaravelのルーティングでHTTPメソッドを指定する方法(get, postなど)

先生と生徒の会話形式で理解しよう

生徒

「Laravelでルートを作るときに、getとかpostとか色々ありますけど、どう使い分ければいいんですか?」

先生

「良い質問です!getやpostはHTTPメソッドというもので、ウェブで送受信する情報の種類を決めるものです。Laravelでは、このメソッドごとにルートを設定して、処理を分けることができます。」

生徒

「HTTPメソッドってなんですか?簡単に教えてください。」

先生

「HTTPメソッドとは、ウェブブラウザとサーバーがやりとりするときに、どんな操作をしたいかを表す合図のようなものです。代表的なものは、データを読み込むときのGET、データを送信するときのPOSTなどがあります。」

生徒

「なるほど。じゃあLaravelではどうやってそのHTTPメソッドを指定するんですか?」

先生

「それでは、具体的な使い方を見ていきましょう!」

1. HTTPメソッドとは?

1. HTTPメソッドとは?
1. HTTPメソッドとは?

HTTPメソッドは、ウェブサイトやウェブアプリケーションで、サーバーに対してどんな種類の操作をしたいのかを伝えるための決まりごとです。主に以下の種類があります。

  • GET(ゲット):データを取得するときに使う。ウェブページを見るときはこれ。
  • POST(ポスト):データを新しく送信・登録するときに使う。例えば、フォーム送信。
  • PUT(プット):既存のデータを更新(上書き)するときに使う。
  • DELETE(デリート):データを削除するときに使う。

このようにHTTPメソッドは、サーバーとのやりとりの「目的」を区別するための大切な役割があります。

2. LaravelでHTTPメソッドを指定したルートの書き方

2. LaravelでHTTPメソッドを指定したルートの書き方
2. LaravelでHTTPメソッドを指定したルートの書き方

Laravelのルーティングでは、HTTPメソッドごとにメソッド名を使ってルートを作ります。例えば、GETリクエストならRoute::get()POSTリクエストならRoute::post()を使います。


Route::get('/hello', function () {
    return 'こんにちは!GETメソッドのルートです。';
});

Route::post('/hello', function () {
    return 'こんにちは!POSTメソッドのルートです。';
});

この例では、同じURL「/hello」でも、アクセスの種類(GETかPOSTか)によって返す結果が変わります。

3. GETメソッドは「見る」ためのリクエスト

3. GETメソッドは「見る」ためのリクエスト
3. GETメソッドは「見る」ためのリクエスト

ウェブブラウザでURLを直接開いたり、リンクをクリックすると、基本的にGETメソッドでサーバーにアクセスします。Laravelでは、Route::get()を使って、この「見る」ためのルートを作ります。

例えば、ブログの記事一覧ページや商品一覧ページなどはGETメソッドでアクセスされることが多いです。

4. POSTメソッドは「送信」するときのリクエスト

4. POSTメソッドは「送信」するときのリクエスト
4. POSTメソッドは「送信」するときのリクエスト

フォームからデータを送信したり、会員登録やログイン情報をサーバーに渡すときには、POSTメソッドを使います。LaravelではRoute::post()を使って、その受け取り先を指定します。

例えば、お問い合わせフォームの送信先やユーザー登録処理のURLはPOSTメソッドで設定します。

5. PUTとDELETEメソッドも使ってみよう

5. PUTとDELETEメソッドも使ってみよう
5. PUTとDELETEメソッドも使ってみよう

APIや管理画面などで、データを編集(更新)したり削除したりする場合は、PUTメソッドDELETEメソッドを使います。Laravelでは、それぞれRoute::put()Route::delete()でルートを設定できます。


Route::put('/user/{id}', function ($id) {
    return 'ユーザーID ' . $id . ' の情報を更新しました。';
});

Route::delete('/user/{id}', function ($id) {
    return 'ユーザーID ' . $id . ' を削除しました。';
});

このようにHTTPメソッドを使い分けることで、どんな操作をしたいかが明確になります。

6. 複数のHTTPメソッドに対応したルートの書き方

6. 複数のHTTPメソッドに対応したルートの書き方
6. 複数のHTTPメソッドに対応したルートの書き方

1つのURLで複数のHTTPメソッドに対応したい場合、Route::match()Route::any()を使うこともできます。


Route::match(['get', 'post'], '/contact', function () {
    return 'GETかPOSTのどちらかでアクセスされました。';
});

Route::any('/anything', function () {
    return 'どんなHTTPメソッドでもこのルートにマッチします。';
});

ただし、初心者はまずは基本のgetpostを理解してから使うのがおすすめです。

7. HTTPメソッド指定がない場合の注意点

7. HTTPメソッド指定がない場合の注意点
7. HTTPメソッド指定がない場合の注意点

LaravelのルーティングでHTTPメソッドを指定しない場合は、そのルートはすべてのメソッドにマッチすることがあります。これが原因で意図しない動作になることがあるので、必ずgetpostなどを明示的に指定しましょう。

8. HTTPメソッドを意識して安全なWebアプリを作ろう

8. HTTPメソッドを意識して安全なWebアプリを作ろう
8. HTTPメソッドを意識して安全なWebアプリを作ろう

HTTPメソッドを正しく使うことで、ユーザーが意図しない操作を防ぎ、セキュリティを高められます。例えば、削除や更新はPOSTやPUT、DELETEで処理し、閲覧だけはGETで処理するとルールがはっきりして管理しやすくなります。

LaravelのルーティングでHTTPメソッドを使いこなして、安全でわかりやすいウェブアプリを作りましょう!

まとめ

まとめ
まとめ

LaravelのルーティングでHTTPメソッドを指定する方法を理解することは、ウェブアプリケーションを安全かつ正確に動かすための大切な基礎になります。今回学んだように、GET・POST・PUT・DELETEといったHTTPメソッドは、それぞれ役割が異なり、「閲覧」「送信」「更新」「削除」といった操作を正しく分類するために欠かせない要素です。とりわけLaravelでは、Route::get()Route::post()などのようにメソッドに応じて記述が分かれているため、意図した処理をわかりやすく整理しながら開発できます。

ブラウザでページを開くときはGET、フォーム送信はPOSTという基本的な流れをはじめ、PUTやDELETEのように更新や削除に特化したメソッドを使うことで、アプリケーションの処理がより明確になり、データの扱いも安全に管理できます。特にPUTとDELETEを正しく活用すると、更新・削除操作を意図せずGETで実行してしまうといった危険を避けることができ、アプリの振る舞いが安定します。

また、ひとつのURLで複数のメソッドに対応できるRoute::match()Route::any()のような柔軟な書き方も存在し、問い合わせフォームや汎用的な処理をまとめる際に便利です。ただし、初心者の場合はまずget・postをしっかり使い分け、そのうえで必要な場面に応じてPUT・DELETE・match・anyを加えていくと、無理なく理解が深まります。メソッドを丁寧に使い分けることで、どのURLがどんな操作を担っているのかが明確になり、アプリ全体の構造が自然に整理されます。

さらに、安全なウェブアプリケーションを作るうえでは、HTTPメソッドの使い方が非常に重要です。削除や更新の処理がGETのままになると、意図しないアクセスでも処理が実行されてしまう危険があります。そのため、Laravelのルーティングでは、更新はPUT、削除はDELETEといったルールを守ることで、操作が明確に制御され、セキュリティ面でも大きな効果を発揮します。これらの基本を押さえておくことで、アプリの品質を高めるだけでなく、保守性の高いシステムを構築できます。

下記のサンプルコードは、今回の理解をより深めるために、複数のメソッドを組み合わせたルーティング例をまとめています。

HTTPメソッド別ルーティングのサンプルコード


use Illuminate\Support\Facades\Route;

Route::get('/article', function () {
    return '記事一覧を表示しています';
});

Route::post('/article', function () {
    return '新しい記事を登録しました';
});

Route::put('/article/{id}', function ($id) {
    return '記事ID ' . $id . ' を更新しました';
});

Route::delete('/article/{id}', function ($id) {
    return '記事ID ' . $id . ' を削除しました';
});

Route::match(['get', 'post'], '/contact', function () {
    return 'お問い合わせページにアクセスされました';
});

このように、それぞれのHTTPメソッドがアプリの動作をしっかりと分類し、開発者にとっても読みやすく管理しやすい形になります。Laravelのルーティングは柔軟で直感的な記述ができるため、取り組んでいくうちに自然と構造が理解できるようになり、より複雑なアプリケーションへ発展させる際にも大きな助けとなります。HTTPメソッドを正しく扱えるようになることは、基礎でありながら長く役立つ知識です。

先生と生徒の振り返り会話

生徒

「今日はHTTPメソッドとLaravelのルートの関係がだいぶ理解できました!ページを見るのはGET、送信はPOST、更新はPUT、削除はDELETEって覚えるとわかりやすいですね。」

先生

「その覚え方はとても良いですよ。Laravelのルーティングははっきりと動作が分かれているので、そのルールをそのまま使うだけで安全なアプリケーションが作れます。」

生徒

match()とかany()とかも便利そうですが、まず基本をしっかり積み重ねていくのが大事なんですね。」

先生

「ええ、まずはGETとPOSTの理解を深めること。それが土台になって、PUTやDELETEも自然に使いこなせるようになります。HTTPメソッドの役割を整理しておくと、アプリ全体の構造が見えやすくなるので、ぜひ実践してみてください。」

生徒

「はい!実際に自分のアプリでいろいろ試してみます。メソッドごとの役割が整理されていると、コードがきれいになるのも嬉しいですね。」

先生

「その通り。読みやすいコードは自分にも他の人にも優しいですからね。これからもひとつずつ経験を積んでいきましょう。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

LaravelのルーティングでHTTPメソッドとは何ですか?

LaravelのHTTPメソッドとは、サーバーに対して「どんな操作をしたいか」を伝えるための種類を示す仕組みです。GETはデータ取得、POSTはデータ送信、PUTはデータ更新、DELETEはデータ削除など、目的によって使い分けられます。
関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
Laravelの認証状態をチェックする方法を完全解説!authとAuth::check()を初心者向けにやさしく説明
New2
CodeIgniter
CodeIgniterのコントローラクラスの作り方を完全ガイド!初心者でもわかる基礎から実践まで
New3
Symfony
Symfonyのフォームラベルを多言語対応!初心者でもわかる翻訳設定ガイド
New4
Laravel
Laravelでユーザー登録機能を作る方法!初心者向けにバリデーションとリダイレクトをやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方
No.2
Java&Spring記事人気No2
Laravel
Laravelのビューとは?Bladeテンプレートの基本を解説
No.3
Java&Spring記事人気No3
Laravel
Laravelでセッションを扱う方法!保存方法と利用例を解説
No.4
Java&Spring記事人気No4
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方
No.5
Java&Spring記事人気No5
Laravel
Laravelでルーティングを設定する方法!web.phpと基本ルートの書き方を初心者向けに徹底解説
No.6
Java&Spring記事人気No6
Laravel
Laravelのルートキャッシュ機能を活用してパフォーマンス改善!初心者でもわかる完全ガイド
No.7
Java&Spring記事人気No7
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.8
Java&Spring記事人気No8
Laravel
LaravelでルートをBladeテンプレートに記述する方法(route関数)