Controllerの作成

目次
  • 解説
  • 1. コントローラーを作成しよう
  • 2. リダイレクト
進捗を変更する




解説

1. コントローラーを作成しよう


前のページでは、ルーティングを担当する「web.php」ファイルに直接、Viewを呼び出す処理を記述してきましたが、 『PHP WEB中級』コースと同じように、Viewを呼び出す処理をコントローラーに移しましょう。

Laravelでは、コントローラークラスを「app > Http > Controllers」フォルダー内に作成します。

手順1

(1)「app > Http > Controllers」フォルダー内に、「HomeController.php」ファイルを作成してください。
(2)作成した「HomeController.php」を下記のコードで置き換えて、最小構成のコントローラークラスを作成してください。
<?php

namespace App\Http\Controllers;

// Controllerクラスを継承したクラスがコントローラーとして機能します。
class HomeController extends Controller
{
    //
}
(3)作成したHomeControllerクラスに、「home.blade.php」ファイルを呼び出すgetHomeView()メソッドを追記してください。
<?php

namespace App\Http\Controllers;

// Controllerクラスを継承したクラスがコントローラーとして機能します。
class HomeController extends Controller
{
    /**
     * ログイン後のホーム画面を表示します。
     */
    public function getHomeView()
    {
        return view('home');
    }
}

ログイン後のホーム画面を表示するgetHomeView()メソッドを、HomeControllerクラスに作成することができました。

次は「web.php」ファイルからHomeControllerクラスのgetHomeView()メソッドを呼び出してみましょう。

web.php」ファイルからコントローラーのメソッドを呼び出すには、ルーターメソッドの第二引数に、「'コントローラー名@メソッド名'」と指定します。

手順2

(1)routes」フォルダー内の「web.php」ファイルの該当箇所を、下記のコードに置き換えてください。
Route::get('/home', function () {
    return view('home');
});

Route::get('/home', 'HomeController@getHomeView');

ブラウザから http://localhost/home にアクセスし、コントローラーに処理を移す前と同じく、ホーム画面が表示されることを確認しておきましょう。

2. リダイレクト


http://localhost/ にアクセスすると表示されるwelcomeページは、Laravelプロジェクト新規作成時の確認用の画面です。URLパス「/」(ルート)にアクセスすると、「/login」にリダイレクトさせるルーティングを追加しましょう。

構文:リダイレクト

構文

Route::redirect('リダイレクト元のパス', 'リダイレクト先のパス');

使用例

Route::redirect('/', '/login');

手順3

(1)routes」フォルダー内の「web.php」ファイルの該当箇所を、下記のコードに置き換えてください。
Route::get('/', function () {
    return view('welcome');
});

Route::redirect('/', '/login');

ブラウザから http://localhost/ にアクセスし、http://localhost/login にリダイレクトされることを確認しましょう。

なお、Laravelの認証機能では、アプリケーションへログイン中に「/login」にアクセスすると、「/home」にリダイレクトされる仕様となっています。「/」->「/login」のリダイレクトを確認する場合は、ログアウトしてから http://localhost/ にアクセスしてくだい。

このページの学習を終えたら、Sourcetreeからコミット・プッシュをおこないましょう。