ビュー
ビューのパーツの種類
●ビュー
アクションごとの固有ページです。
●エレメント
小さい再利用しやすいコードやテンプレートを切り出したものです。
●レイアウト
アクションごとの固有ページで共通して使う、ヘッダやフッタなどを含むテンプレートファイルです。
●ヘルパー
ビューレイヤーで必要とするロジックをカプセル化しているものです。
●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日
------------------------------