ビュー

ビューのパーツの種類

●ビュー
アクションごとの固有ページです。

●エレメント
小さい再利用しやすいコードやテンプレートを切り出したものです。

●レイアウト
アクションごとの固有ページで共通して使う、ヘッダやフッタなどを含むテンプレートファイルです。

●ヘルパー
ビューレイヤーで必要とするロジックをカプセル化しているものです。

●cells
クラスになっていて、自己完結型のUI部品を作成できる、小さいコントローラー風の機能を提供しています。

ビューとは?ビューの役割とは?

ビューについて

  • MVCのVのことです。
  • HTML、JSON、CSV、PDFなどの表示を担当している。
  • ビュークラスで動作している。
  • データは、主にコントローラから受け取る。
  • ヘッダーーやフッターなど共通に使用する部分は、レイアウトファイルにして共通化できる。
  • 各所で共通して表示する部分(サイドバーなど)は、エレメントファイルにして共通化できる
  • ビューで共通して使用する、メソッドはビューヘルパーに定義できる。
  • JSやCSSの読み込み用メソッドが用意されている。
  • フォームのパーツ表示に使用する、メソッドはビューヘルパーに定義されている。

変数をサニタイジング(エスケープ)して表示する

変数をサニタイジング(エスケープ)して表示するには、h()を使用します。

クロスサイトスクリプティング(xss)対策になります。

<?php
    h($userName);
?>

コントローラからビューに変数を渡す

ビューに変数を渡すにはコントローラ側のset()でできます。
第一引数には、ビューに渡す変数名、第二引数には変数を渡します。

■コントローラ側

$test = ['test' => 'TEST!'];
$this->set('test', $test);

■ビュー側

<?= h($test); ?>

自動render処理を止める

自動render処理を止めるには、コントローラで以下のように記載します。

これをするとビューファイルを新たに指定しない限りrenderされません。

■コントローラ側

$this->autoRender = false;

レイアウトを無効にする

レイアウトを使わないようにする設定です。

コントローラで以下のように記載します。

■コントローラ側

$this->viewBuilder()->layout(false);

エレメントを表示する、エレメントに変数を渡す

エレメントを読み込み表示するには、ビューで次のように記載します。

<?php
    echo $this->element('sidebar-element'); 
?>

また、エレメントに変数を渡したい場合は、第二引数に配列で渡します。

<?php
    echo $this->element(
        'sidebar-element',
        [
            'userName' => '田中'
        ]
    ); 
?>

エレメント側では、$userNameで内容を表示できます。

 

------------------------------
作成日:2016年07月13日
更新日:2017年06月27日
------------------------------

ページの先頭へ