0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravel:ControllerとRouteを定義して、GETリクエストで文字列を返してみた

Posted at

はじめに

本記事では、Mac上で簡易的なLaravelプロジェクトを作成し、コントローラーを通じてブラウザに"頑張れ自分!"と表示するまでの手順を解説します。

※すでにPHPとComposerがインストールされている前提で進めます。

内容に不備などがございましたら、お手数ですが優しくご指摘いただけますと幸いです。

書こうと思ったきっかけ

コントローラーとルーティングの関係や役割についての理解があいまいだったため、復習を兼ねて記事にまとめました。

個人的にとてもわかりやすく説明されていた動画だったので、おすすめです…!

Laravelのコントローラーについて解説動画

LaravelのRouting(ルーティング)について解説動画

個人的にPHPのキャッチアップをしたくて、初学者による備忘録として記録しています。

コントローラーとは?

Laravelのコントローラーは、ブラウザなどから受け取ったリクエストに対して、どんな処理を行うかを記述する場所です。

以下、公式から引用します。

ルートファイル内でリクエスト処理ロジックをすべてクロージャとして定義する代わりに、「コントローラー」クラスを使用してこれらの動作を整理することもできます。コントローラーは、関連するリクエスト処理ロジックを単一のクラスにグループ化できます。例えば、UserControllerユーザーの表示、作成、更新、削除など、ユーザーに関連するすべての受信リクエストを1つのクラスで処理できます。デフォルトでは、コントローラーはディレクトリに保存されますapp/Http/Controllers。

引用元:https://laravel.com/docs/12.x/controllers

例えば「/hello にアクセスされたら文字を表示する」といった振る舞いを定義します。コントローラーは、アプリの中核となるビジネスロジックやレスポンス処理を担います。

つまり、リクエスト処理を整理し、再利用しやすくするために、関連する処理をコントローラークラスにまとめられるのが、コントローラーの役割のようです!

routes/web.php

このファイルは、リクエストされたURLに対してどのコントローラーのどのメソッドを実行するかを定義する場所です。

全体の流れ(図にすると)

[ブラウザで /hello にアクセス]
          
[ルーティングで HelloController@index を指定]
          
[HelloController@index メソッドが実行される]
          
[頑張れ自分!」という文字列が返る]
          
[画面に表示]

たとえば /hello にアクセスされたときに HelloController@index を呼び出すような設定をここに書きます。

use App\Http\Controllers\HelloController;

Route::get('/hello', [HelloController::class, 'index']);

参考文献

実際に動かしてみた

ステップ1:必要なものを確認

以下のソフトウェアがインストールされていることを確認します:

ソフトウェア 確認コマンド 備考
PHP php -v 8.1以上を推奨
Composer composer -V Laravelの依存管理に必要

私の環境は、以下のような状況です

Screenshot 2025-06-04 at 22.01.35.png

ステップ2:Laravelプロジェクトを作成

cd ~/Desktop/macbook\ pro
composer create-project laravel/laravel myapp

ステップ3:プロジェクトディレクトリに移動

cd myapp

プロジェクトはこんな感じです

 ~/Desktop/macbook pro/myapp   ll
total 632
drwxr-xr-x@  5 xxx  staff     160 Jun  4 22:12 app
-rwxr-xr-x@  1 xxx  staff     425 May 27 02:17 artisan
drwxr-xr-x@  5 xxx  staff     160 Jun  4 21:05 bootstrap
-rw-r--r--@  1 xxx  staff    2419 May 27 02:17 composer.json
-rw-r--r--@  1 xxx  staff  297706 Jun  4 21:04 composer.lock
drwxr-xr-x@ 12 xxx  staff     384 Jun  4 21:05 config
drwxr-xr-x@  7 xxx  staff     224 Jun  4 22:12 database
-rw-r--r--@  1 xxx  staff     414 May 27 02:17 package.json
-rw-r--r--@  1 xxx  staff    1173 May 27 02:17 phpunit.xml
drwxr-xr-x@  6 xxx  staff     192 Jun  4 21:05 public
-rw-r--r--@  1 xxx  staff    3929 May 27 02:17 README.md
drwxr-xr-x@  5 xxx  staff     160 Jun  4 21:05 resources
drwxr-xr-x@  4 xxx  staff     128 Jun  4 21:10 routes
drwxr-xr-x@  5 xxx  staff     160 Jun  4 21:18 storage
drwxr-xr-x@  5 xxx  staff     160 Jun  4 21:05 tests
drwxr-xr-x@ 41 xxx  staff    1312 Jun  4 21:18 vendor
-rw-r--r--@  1 xxx  staff     331 May 27 02:17 vite.config.js

ステップ4:開発サーバーを起動

php artisan serve

ブラウザで http://127.0.0.1:8000 にアクセスすると、Laravelの初期ページが表示されます。

アクセス画面

Screenshot 2025-06-04 at 22.03.19.png

ステップ5:コントローラーを作成し表示させる

コントローラー作成

php artisan make:controller HelloController

問題なく作成されました

Screenshot 2025-06-04 at 22.07.02.png

コントローラー編集

app/Http/Controllers/HelloController.php を以下のように編集:

<?php

namespace App\Http\Controllers;

class HelloController extends Controller
{
    public function index()
    {
        return '頑張れ自分!';
    }
}

コード解説

  • HelloController という名前の コントローラーを定義 している
  • index という関数が /hello のようなルートにアクセスされたときに呼び出される
  • その関数では、「頑張れ自分!」という文字列を返す

ルート設定

routes/web.php に以下を追加:

use App\Http\Controllers\HelloController;

Route::get('/hello', [HelloController::class, 'index']);

コード解説

  • GET /hello にアクセスされたときに、
    HelloController の index メソッドを実行するように設定

  • これによって /hello にアクセスすると「頑張れ自分!」が表示される

ブラウザで確認

http://127.0.0.1:8000/hello にアクセスすると、画面に「頑張れ自分!」と表示されます。

アクセス画面

Screenshot 2025-06-04 at 22.12.56.png

なんだか少し元気が出てきました!!(笑)

まとめ

ここまで読んでいただき、ありがとうございました!

コントローラーとルーティングを組み合わせることで、アプリケーションのページ表示を柔軟に制御できることがわかりましたが、まだまだ学ぶべきことが多いと感じました。

今回は簡単な表示から始めましたが、今後はビューやデータベース操作などにも取り組み、アウトプットしていきたいと思います。

次回は、Bladeテンプレートを使ったHTML表示や、フォーム入力の処理にもチャレンジしていく予定です…!

参考文献

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?