ページを表示するまで

Laravelでページを表示するまでの流れを説明します。まずルーティングの設定を行います。設置フォルダは/ahoとします。

$ cd /aho
$ cd ./routes
$ vi web.php
<?php

use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/

//-- コントローラー"LiverControllerのindex()メソッドを呼ぶ',コントローラーの場所はフルパスで指定
Route::get('/livers', 'App\Http\Controllers\LiverController@index');
~                                                                                                                       

次にコントローラーを作成します。

$ cd /aho
$ php artisan make:controller LiverController
$ cd ./app/Http/Controllers
$ vi LiverController.php
namespace App\Http\Controllers;

use Illuminate\Http\Request;

class LiverController extends Controller
{
  public function index()
  {
    return view('liver.index'); ##-- ビューへ飛ばす
  }
}
~                           

最後にビューを作成します。

$ cd /aho
$ cd ./resources/views
$ mkdir liver
$ cd ./liver
$ touch ./index.blade.php
$ vi ./index.blade.php
<html>
  <head>
    <title>Test</title>
  </head>
  <body>
    <h1>Hello, World</h1>
  </body>
</html>

そして、http://<hostname>/liversへアクセスすると、以下のようなページが表示されます。

流れを解説する

どうしてページは表示できるのでしょうか。その流れを解説します。

  • ルーティングファイルの内容は、http://<Host>/livers’に対してHttpGetメソッドでアクセスがあると、App\Http\Controllers\LiverController.phpにあるindex()メソッドを呼び出す。
  • コントローラーApp\Http\Controllers\LiverController.phpにあるLiverControllerクラスのindex()メソッドでliver.indexをビューで渡すよう記載がある。これは<LaravelRoot>/resources/views/liver/index.blade.phpを呼び出し、それをブラウザで表示することを意味する。