読者です 読者をやめる 読者になる 読者になる

ITの隊長のブログ

ITの隊長のブログです。いや、まだ隊長と呼べるほどには至っていないけど、日々がんばります。CakePHPとPlayFrameworkを使って仕事しています。最近はAngular2をさわりはじめたお(^ω^ = ^ω^)

default.ctpで $this->fetch('title'); した後、同じdefault.ctp でtitleを表示させたいとき

CakePHP PHP

スポンサードリンク

http://www.flickr.com/photos/63775128@N00/2984381240
photo by koyhoge


ややこしい!



概要


1.

レイアウトテンプレートファイル default.ctpで

<title><?=$this->fetch('title');?></title>


を、記述


2.

同じく default.ctp の途中で、titleを選定する処理を記述


3.

同じく default.ctp で、タイトルが決まったので、下記を記述

<?php
$this->assign('title', $titleName);

動かない\(^o^)/


わけわかめ


色々調べたら、初めて

<?php
$this->fetch() 

を理解した。


どうやらこのメソッドは、読み込ませたkeyを、次のテンプレート(view)へ継承するメソッドらしい。※ずっとフックだと思ってた。Objective-C とかでのデリゲートとか


そのため、assignなどは継承先のファイルでしか扱うことができない。(使えるけど、同じファイルでは機能しない)


なんてこったい!/(^o^)\