Laravelを使ってみよう-4

2022年09月06日

Viewファイルを作成する

前回の記事で入力値で表示が変わるviewの仕組みと言っていましたが、厳密にはviewファイルは別にあるんですね。あの後勉強しててわかりました。まだまだ先は長い…

今回はそのViewファイルを作成していきます。少し時間が経ってしまって忘れてしまっているので簡単な流れをまとめると、

  1. サイトトップにアクセス
  2. routes/web.phpに飛び、サイトURL以降のパラメーターと同じ名前のControllerがHttp/Controllers/のディレクトリにあるのでそれに飛ぶ。
  3. Controllerに書かれてる処理をroutes/web.php内で行う。文字列を返すだけであればController内に書かれた文字を返すし、デザイナーと分業している場合は別にviewファイルを作成してviewファイルの内容を表示するようにController内に書く。

自分はずっと通常のHTML内でphpの変数を表示していた人間なので、正直3の作業は邪魔くさいように感じるけどどうなんでしょう。viewファイル内は当然極力プログラムのコードは入れない方がいいと思うので条件分岐はControllerでやってってなると行ったり来たりで面倒なような…

スポンサーリンク

Viewファイルはresources/viewsディレクトリの下にplando.blade.phpというファイルを作成します(パラメーターと同じ名前を頭につけたファイル)。これはコマンドじゃないんですね…

welcome.blade.phpを参考に見る限りではけっこうif使ってますね。たしかに書きやすそうな表記にはなってるけど、分業としてはそれでいいんだろうか…

作成したphpファイルを下記内容にします。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Viewファイルテスト</title>
    </head>
    <body>
        {{$message}}
    </body>
</html>

通常のhtmlファイルに{{}}で変数を囲って書いてやると出力できる仕組みですね。もういちいち<?php echo 〜; ?>みたいに指をトリッキーな動きさせなくて済むんですね。

Controllerファイルを編集する

次にControllerを編集します。現状はindexメソッドで"plandoと入力した結果です"と直接表示するようにしている部分をこの作ったviewファイルを呼び出すようにするわけです。

app/Http/Controllers/PlandoController.phpを編集します。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class plandoController extends Controller
{
    public function index()
    {
      return "palndoと入力した結果です";
    }
}

現状こうなっているコントローラークラスのindexメソッドを

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class plandoController extends Controller
{
    public function index()
    {
        $message = "plandoと入力した結果です。";
        return view('plando', ['message' => $message]);
    }
}

このように変更します。$messageという変数に表示したいテキストを格納、パラメーターにplandoが入ったときviewファイルのmessageの部分を変数$messageに置き換えるという感じでしょうか。

結果的に全部ひとりでやってる場合は書く量がやっぱり増えてるような気が…。

追々楽になることに期待しましょう。

表示した結果はこれ。変わり映えしませんが着実に進んでいると信じましょう。ここまで来ればスタイルで見た目も変えていけますね。

スポンサーリンク

ここまででのLaravelの特長

分業を前提にしているからか周りくどい部分はありましたが、おもしろい仕組みでした。

調べていくと、viewファイルの変数部分{{$message}}の括弧は通常のphpでいうところのechoの役目があるだけでなく、”<“や”&”などの特殊文字をエスケープ処理する役割もあるようです。

前述で<?php echo 〜; ?>書かなくていいやーとか言ってましたが、それどころかhtmlspecialchars関数も省略できていたんですね。楽な上によく忘れてしまうのでありがたいです。

エスケープ処理を忘れてしまうと、フォームなどに不正なjavascriptを仕込まれたり危険です(XSS)。そのあたりの知識に疎い人間でも対策できてしまうのは大きいですね。こういった部分がwebアプリケーション作成に向いていると言われる所以なのでしょうか。

MVCと言いながらMができていないような気がするので次回はその部分を進めていきたいと思います。

お知らせ

株式会社プラン・ドゥでは一番くじなどで馴染みのあるミシン目の入ったくじの販売を行なっております。



他社ではなかなかできない製品を最適な価格でご案内させていただいておりますのでぜひお問い合わせください。その他の取扱商品はこちらからご覧いただけます。
http://plando-inc.co.jp/product

同じカテゴリの記事

関連記事

スポンサーリンク

DTP

Laravel開発

wordpressカスタマイズ

デジタルマーケティング

ライフハック

動画

当社製品について

Contact各種お問い合わせ

お問い合わせ・ご相談など
まずはお気軽にご相談ください

お仕事のご依頼やご相談、弊社サービス内容に関してなど、お気軽にご相談ください。

トップページ コラム 各種お問い合わせ プライバシーポリシー