我正在使用以下方法在控制器的操作中设置单个页面标题:
$this->set( 'title_for_layout', 'Some Title' );
我想要实现的是在呈现之前将网站标题字符串附加到所有这些标题,即,例如“Some Title :: Site Name”。
最简单的方法是手动将此字符串添加到设置页面标题的每个点 - 但这就像蛮力方式。
我尝试的是覆盖每个控制器的beforeRender()
方法并添加以下语句:
$this->set( 'title_for_layout', $this->title_for_layout . ' » ' . Configure::read( 'Site.title' ) );
我认为这会将网站的标题附加到每个操作的页面标题上 - 但我得到的是:
Notice (8): Undefined variable: SomeController::title_for_layout [APP\controllers\some_controller.php, line xx]
似乎title_for_layout
(在控制器中的各个动作中设置)尚未设置 - 这就是抛出此错误。
我的问题是,在哪里&如何将网站标题全局附加到所有页面标题 - 如果不是这样的话?
谢谢, 米^ E
答案 0 :(得分:1)
使用$this->pageTitle
代替$this->title_for_layout
答案 1 :(得分:1)
如果您确实要将相同的字符串附加到所有您的页面标题,请在$ title_for_layout之后将其放入布局中。