山傘のプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

Laravel 学習 part. 2

PHP テンプレート

HTML のソースコードだけの PHP ファイルだけではテンプレートとして使う意味がありませんが、値を渡したりすることで有効的な使い方ができます。

値をテンプレートに渡す

HelloController
<?php
    public function index()
    {
        $data = ['msg'=>'これはコントローラから渡されたメッセージです。'];
        return view('hello.index', $data);
    }
index.php
<?php
<html>
    <head>
        <title>Hello/Index</title>
        <style>
            body {font-size: 16pt; color:#999}
            h1 {font-size: 100pt; text-align: right; color: #161616;
                margin: -50px 0px -100px 0px;}
        </style>
    </head>
    <body>
        <h1>Index</h1>
        <p>This is a sample page with php-template.</p>
        <p><?php echo $msg; ?></p>
        <p><?php echo date("Y年n月j日") ?></p>
    </body>
</html>

配列を引数としてテンプレートに渡すことができます。

ルートパラメータ

ルートパラメータをテンプレートに渡します。

web.php
<?php
Route::get('hello/{id?}', 'HelloController@index');
HelloController
<?php
    public function index($id='zero')
    {
        $data = ['msg'=>'これはコントローラから渡されたメッセージです。',
                 'id'=>$id];
        return view('hello.index', $data);
    }
index.php
<html>
    <head>
        <title>Hello/Index</title>
        <style>
            body {font-size: 16pt; color:#999}
            h1 {font-size: 100pt; text-align: right; color: #161616;
                margin: -50px 0px -100px 0px;}
        </style>
    </head>
    <body>
        <h1>Index</h1>
        <p>This is a sample page with php-template.</p>
        <p><?php echo $msg; ?></p>
        <p><?php echo date("Y年n月j日") ?></p>
        <p>ID=<?php echo $id; ?></p>
    </body>
</html>

f:id:yamakasa3:20191105161500p:plain

Blade テンプレート

Laravel 独自のテンプレートエンジンである Blade を使います。○○.php というファイルより ○○.blade.php というファイルが優先されて使われます。

index.blade.php

{{$変数}} という形で変数をテンプレート内に埋め込むことができます。

<html>
    <head>
        <title>Hello/Index</title>
        <style>
            body {font-size: 16pt; color: #999;}
            h1 {font-size: 50pt; text-align: right; color: #f6f6f6; 
                margin: -20px 0px -30px -px; letter-spacing: -4pt;}
        </style>
    </head>
    <body>
        <h1>Blade/Index</h1>
        <p>{{$msg}}</p>
    </body>
</html>

PHPフレームワーク Laravel入門

PHPフレームワーク Laravel入門

感想

なんとなく Laravel のメリットが出てきたような気がします。