ピックアップ記事
CakePHP2.xでヘッダ、フッタなどの共通パーツを作成し、常に表示させる方法【レイアウトを設定】

タイトルにcakephp2系という書いてありますが、3系などでも同じような感じだと思います。

共通パーツを作成する

共通パーツは、「app/View/Elements」に作成します。

試しに上記の場所に「header.ctp」を作成してみましょう。

作成した「header.ctp」は、他のctpファイル内からいつでも呼び出しが可能です。

呼び出す際には、以下のように記述しましょう。

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

共通パーツを常に呼び出す

毎回以下のようにヘッダとフッタを呼び出す処理を書いていると非常に面倒です。

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

これを無くすためにこれらの共通パーツを常に呼び出すよう設定します。

app/View/Layouts/default.ctp」に記述することで、共通処理を毎回書く必要がなくなります。

<?php echo $this->fetch('content'); ?>

上記がコンテンツの中身になりますので、こちらを囲むようにして、配置します。

<?php echo $this->element('header'); ?>
<?php echo $this->fetch('content'); ?>
<?php echo $this->element('footer'); ?>

これで完了です。

もし、表示されない時

もし共通部分を常に呼び出すように設定しても、表示されない時は、使用しているレイアウトが異なる場合があります。

レイアウトを変更する場合には、以下のように設定してください。

$this->layout = 'default';

 

関連の書籍

おすすめの記事