CakePHP | Viewの共通化方法

同じような処理を各Viewに記述することがあると思います。

短いロジックであれば、同じようなコードを重複して記述することもありだと思いますが、Viewが大量の場合には、手作業ではやりきれません。

また、ロジックの修正が発生した場合には、大量の重複コードの修正が必要になってしまいます…

CakePHPでは、共通化する仕組みがたくさんあります。

本記事では、Viewの共通化の方法について記載しています。

共通レイアウトの作成

共通となるレイアウトのViewファイルをapp/View/Elements/ 配下に作成します。

ファイル名は通常のViewと同様{任意のファイル名}.ctpです。

今回の例では、header.ctp, footer.ctp としています。

各Viewからの利用

各Viewでは、下記のように記載します。

// 共通header
<?php echo $this->element('header'); ?>

// 共通footer
<?php echo $this->element('head'); ?>

と記載すると、先ほど作成したファイルを自動で読み込んでくれます。

また、app/View/Elements/Hoge/ のようにディレクトリを作成している場合は、下記のようになります。

// 共通header
<?php echo $this->element('Hoge/header'); ?>

// 共通footer
<?php echo $this->element('Hoge/head'); ?>

スポンサーリンク