Viewを作成するコマンドは、無い
Viewを作成するコマンドは、無いので、
resources/views/
配下に、
index.blade.php
みたいなファイルを手動で作成する。
テンプレートエンジン bladeが利用できる
LaravelのViewでは、
テンプレートエンジン bladeが利用できる。
ココらへんは後から追記しようと思う。
bladeでの変数の取り扱い
bladeでは以下の書き方で変数にアクセスできる。
{{ $変数 }}
Laravel Controller 編集 – 基本編 で書いた例から呼び出されたViewで以下のように書くと、
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
{{ $user }} <br>
{{ $score }}
</body>
</html>
こういうページが作れる。
{{ }} の中で、エスケープ処理しない(変数や式として扱わない)やり方
bladeにて、入力した値(HTMLタグなど)をそのままの形式で表示したい場合、
{!! !!}
で囲う。波括弧は一重なのがポイント。↓
- x {{!! 文字列 !!}}
- o {!! 文字列 !!}
@extends、@yieldと@sectionで共通パーツを使う
bladeでは、定義したレイアウトを継承して使うことができる。
たとえば、複数ページで共通で使う画面構成のガワ(ヘッダーやフッター、サイドメニューなど)を継承して使う。
resources/views/
配下に更にガワ用のフォルダを作る。
フォルダ名は任意で良い。
ここでは、layouts とする。
mkdir layouts
さらにガワ用のファイルを作る。
ファイル名は任意で良い。
が、
●●●.blade.php
の形式にする。
ここでは、common.blade.php する。
common.blade.phpには以下の内容で作成する。
ここでは、分かりやすくするためにhtmlの構文の正しさは無視して記述する。
<html>
<head>
<title>@yield('title')</title>
</head>
<body>
@yield('content')
</body>
</html>
上記の@yieldと記述したところでは、呼び出しをした側が独自の内容を埋め込める。
更に、resources/views/index.blade.php を作成する。
以下の内容で作成する。
@extends('layouts.common')
@section('title', 'とっぷぺーじだよ')
@section('content')
\
<p>コンテンツの中身である</p>
\
<p>ふつーにhtmlが記述できる</p>
@endsection
まずは一番最初に、一回だけ、@extends ディレクティブでガワとなる親レイアウトを呼び出す。
@sectionディレクティブで、ガワの@yieldで指定したところに、値を埋め込む指定をする。
@sectionは2通りの指定方法がある。
- @section(‘title’, ‘文字列’) のように、文字列だけを記述するやり方
- @section(‘content’) 〜 @endsection のように、中身にhtmlを記述するやり方
コメント