Unity(C#)初心者・入門者向けチュートリアル ひよこのたまご

AndroidやiOS向けアプリを簡単に作れるゲーム開発環境Unity(ユニティ)の使い方を、チュートリアル方式で一緒に学びましょう!

【Laravel】ControllerからView(ビュー)を呼び出す!

PHPバージョン:7.1.14
Laravelバージョン:5.7.9

前回までで
特定のアドレスにアクセス→routeを参照→Controllerで処理を実行
というところまでできました!

今回はMVCのView(ビュー)を使い、
ブラウザにWebページを表示します!
(Unityなどゲーム開発ではほぼ使わないかと思いますので簡単に!)

Viewの場所を確認する

Viewに関するファイルは、resources>viewsフォルダにあります。
初期状態ではwelcome.blade.phpというファイルだけあります。
そうです、routes>web.phpにデフォルトで記述されていたページです!

Route::get('/', function () {
    return view('welcome');
});

routes>web.php

return view('welcome');
を実行すると
resources>views>welcome.blade.php
というファイルが表示されるようになっています。
(「.blade.php」の部分は書かなくてもLaravelが勝手に変換してくれます。)

bladeについて

bladeとはLaravelに搭載されている、テンプレートエンジンです。
resources>views>welcome.blade.phpファイルを開くと、
@if(Route::has('login'))
という記述があります。
bladeを使うと「@if()」でif文を表現できます。
PHPで書こうとすると

となり、bladeのほうが簡潔に記述できることが分かります。

またbladeのレイアウトという機能を各ページで継承することで、
同じデザインを使い回したりも出来ます。

そんなLaravelのために用意された便利なテンプレートがbladeです!

Viewファイルを作成する

それではarticle.blade.phpというファイルを
resources>viewsに作成しましょう!

<!doctype html>
<html>
    <head>
        <title>Laravel Hello</title>
    </head>
    <body>
        <h1>Laravel Hello</h1>
        <p>{{$hello}}</p>
    </body>
</html>

resources>views>article.blade.php

内容としては普通のhtmlです。
「{{$hello}}」の部分だけblade特有の記述で、
送信されてきた変数を表示します。
{{$変数名}}
という書き方です。

それではControllerへ戻り、
Viewを表示する処理を記述しましょう!

ControllerからViewを呼び出す

Viewを呼び出す処理は、
return view('Viewページ名');
で行えます。
web.phpにデフォルトであった、
welcomeページを呼び出す処理と同じです。
前回作成したArticleControllerのshowメソッドを編集します。

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ArticleController extends Controller
{
    function show() {
        $data = [
            'hello'=>'ハロー!',
        ];
        return view('article', $data);
    }
}

app>Http>Controllers>ArticleController.php

$data配列変数に中身が'ハロー'のhello変数を設定します。
(変数を複数指定したい場合は配列を増やします。)
この$data変数をviewメソッドの第2引数に指定すると、
bladeで変数を使うことができます。

結果

f:id:hiyotama:20181023162353p:plain

{{$hello}}にviewメソッド第2引数で指定した'hello'が代入され、
無事「ハロー」という文字が表示されました!

今回はここまでです、ありがとうございました〜