【Laravel】コントローラーを使ってみる

おだねこ

~簡単な自己紹介~

  • 嫁と猫3匹と暮らすフルリモートの三十路SE
  • 投資・節約・副業で資産形成中
  • 現在の金融資産は約1,750万円、めざせアッパーマス層(資産3,000万円)

今回はLaravelの基本中の基本であるコントローラーを使ってみます。

開発環境

  • OS:Windows11
  • Docker Desktopインストール済み
  • VSCodeインストール済み

前提

・開発環境:Docker上のappコンテナにLaravelがインストールされている

詳細な環境は下記の記事をご参照ください。

今回はDocker環境で実施しますが、ローカルに直接インストールしている方も参考になると思います。

Target class [○○○Controller] does not exist. を回避する

何も気にせずコントローラーを使うとnot existエラーが発生します。

新しいLaravel(バージョン8~)の場合、デフォルトの名前空間が削除されているようです。

難しい話は置いておいて、こちらのQiitaの記事を参考にちょっとした修正を入れてあげます。

RouteServiceProvider.phpを開く

下記のファイルを開きます。

laravel\src\app\Providers\RouteServiceProvider.php

RouteServiceProvider.phpを編集する

3か所にコードを追記します。

①21行目あたり

protected $namespace = 'App\Http\Controllers';

②35行目あたり

->namespace($this->namespace)

③39行目あたり

->namespace($this->namespace)

コントローラーを作成する

ターミナルを表示する

メニューの表示から、ターミナルを開きます。

ショートカットキーはCtrl + @なので、覚えておくと便利です。

appコンテナに入る

下記のコマンドを実行して、appコンテナに入ります。

docker compose exec app bash

コマンドでコントローラーを作成する

下記のコマンドを実行して、コントローラーを作成します。

php artisan make:controller TestController

このコマンドでTestController.phpというファイルが作成されます。

コントローラーを作成する際、ファイル名は○○Controllerとするのがベター(マスト?)です。

コントローラーを編集する

コントローラーに下記のメソッドを追加します。

    public function test()
    {
        return "コントローラーのテスト";
    }

ルーティングを行う

web.phpを開く

下記のファイルを開きます。

laravel\src\routes\web.php

web.phpを編集する

パスとコントローラーのメソッドを紐づけるために、下記のコードを追加します。

Route::get('test-controller', 'TestController@test');
  • 第一引数:パス
  • 第二引数:コントローラーのクラス@コントローラーのメソッド

ブラウザで動作確認する

下記のURLを開いて動作確認をします。

http://localhost:8080/test-controller

画面に「コントローラーのテスト」と出力されていればOKです。

以上になります。

お疲れさまでした。

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA