2018/10/12
Laravelをインストールしてプロジェクトを作成したときに確認でWelcomeページを表示させました。
今回は、このWelcomeページがどのような流れで表示されているか確認します。
Welcomeページを表示する流れ
まずはルーティングの中身を確認します。
Laravel5.2では
app/Http/routes.php
がルーティングのファイルです。
#routes.phpを確認 Route::get('/', function () { return view('welcome'); });
viewという関数を使用してwelcomというテンプレートファイルを呼び出しているのがわかります。
view関数の戻り値がブラウザへのレスポンスになります。
[書式]
view( テンプレート , 連想配列 );
view関数には第2引数に連想配列でテンプレートへ変数を渡すことができます。
例えばmessageという変数にHelloという値を代入して渡す場合は
return view('welcome',['message' => 'Hello!']);
と記述します。
このように記述すればビューファイル側(welcome.blade.php)で$messageをエコーすると"Hello!"が表示されます。
この記述では第2引数に何も書いていないので、単にwelcomeというテンプレートを呼び出しているだけになります。
テンプレートはLaravelではBlade(ブレイド)というテンプレートエンジンを使います。
Bladeを使うにはファイル名を
【ビュー名】.blade.php
とします。
このVeiwファイルの置き場所はLaravel5.2だと
resources/views/〇〇.blade.php
になります。
上の記述ではwelcomeがViewの名前になりますのでwelcome.blade.phpとなります。
このファイルがMVCモデルでいうViewにあたります。
チュートリアル
LaravelのWelcomeページの表示はroutes.phpで直接viewファイルを呼び出して表示させていました。
チュートリアルでは間にコントローラをはさんでviewファイルを表示させようと思います。
MVCのモデルではこのようになります。
実現したいこと
- コントローラからLaravelのWelcomeページを表示させる
手順
1. コントローラの作成
XAMPPの場合だとコマンドプロンプトでLaravelのプロジェクトフォルダまで移動します。
#プロジェクト名がmylaravelの場合 cd C:\xampp\htdocs\mylaravel #artisanコマンドを使ってコントローラを作成 #コントローラファイル名はアッパーキャメル記法(複合語の先頭を大文字で書き始める)+Controllerで記述 php artisan make:controller WelcomeController
app/Http/Controllers
に中身が空のWelcomeController.phpが生成されます。
このファイルに以下のようにindex()メソッドを追加します。
<?php #WelcomeController.php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; class WelcomeController extends Controller { public function index() { return view('welcome'); } }
2. ルーティングの設定
app/Http/routes.phpのファイルを編集します。
#routes.php Route::get('/', 'WelcomeController@index');
第2引数のアクション部分は “コントローラクラス名@メソッド名”と記述します。
これでコントローラクラスのメソッドを呼び出すことができます。
上の例だとドキュメントルート(/)にアクセスした場合、WelcomeControllerクラスにあるindexメソッドを呼び出すようになっています。
3. ブラウザで確認
WEBサーバが立ち上がっていることを確認して
ブラウザで
http://localhost/mylaravel/public
と入力してLaravel5のロゴが表示されていればOKです。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。