ビューはページ テンプレートであり、通常はアクションにちなんで名付けられます。たとえば、PostsController::add のビューは /app/views/posts/add.ctp にあります。 Cake ビューは非常に単純な PHP ファイルであるため、任意の PHP コードを使用できます。
レイアウト レイアウト
レイアウトには、ビューの外側でラップされたすべてのプレゼンテーション コードが含まれています。レイアウト ファイルは /app/views/layouts ディレクトリに配置されます。デフォルトのレイアウトをオーバーライドして、/app/views/layouts/default.ctp にある Cake のデフォルトのレイアウトを置き換えることができます。新しいデフォルト レイアウトが作成されると、ページがレンダリングされるときにコントローラー ビューのコンテンツがデフォルト レイアウトに置き換えられます。 Cake サイトに必要なだけレイアウトを作成でき、それらを app/views/layouts ディレクトリに配置し、コントローラーの $layout 変数または setLayout() メソッドを使用してコントローラー アクションでレイアウトを切り替えることができます。
要素
element 要素は、主にコードまたはコード ブロックの再利用のために生成されます。多くのアプリケーションには、ページからページへと繰り返されるプレゼンテーション コードが含まれており、レイアウト内の異なる場所にあるだけの場合もあります。 Cake は、必要に応じてサイトの特定のセクションをコピーするのに役立ちます。 これらの再利用可能なページ ブロックを要素と呼びます。広告、ヘルプ ボックス、ナビゲーション バー、メニュー、イラストはすべて Cake の要素として実装されます。要素は実際には、他のビューに含めることができるミニビューとみなすことができます。すべての要素は /app/views/elements ディレクトリに存在し、ファイル拡張子は .ctp です。
デフォルトでは、要素はどのデータにもアクセスできません。データへのアクセスを許可するには、配列内のデータを渡す必要があります。また、データに名前 (キーと値のペアの配列) を付けることを忘れないでください。
パラメータなしで要素を呼び出す
renderElement('helpbox') ?>
要素を呼び出し、データを含む配列を渡します
$this->renderElement('ヘルプボックス', array(
"helptext" => 「ああ、このテキストはとても役に立ちます。」)
);
?>
要素ファイルでは、すべての受信変数はパラメーター配列内のキー名を通じて使用できます (ビュー内のコントローラーを使用して set() で設定された変数に似ています)。上の例では、$helptext 変数を /app/views/elements/helpbox.ctp ファイルで使用できます。もちろん、要素に配列を渡すと、より多くの情報が含まれます。要素によりビューが読みやすくなり、レンダリングの繰り返される要素部分が対応する要素ファイルに配置されます。もちろん、サイト内でコンテンツ ブロックを再利用するのにも役立ちます。