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からコミット・プッシュをおこないましょう。