如何在引导程序中分配一次页面标题(所以我不必在每个控制器中执行此操作)?是否有指向正确方向的链接?
正在使用引导程序吗?
我目前在每个控制器中都有这个:
public function indexAction()
{
$this->view->title = 'Cut It Out';
}
layout.phtml有这个:
<h1><?php echo $this->escape($this->title); ?></h1>
答案 0 :(得分:2)
您可以使用视图助手将标题回显到layouts / layout.phtml中的布局脚本。
创建文件/application/views/helpers/SiteTitle.php: -
<?php
class Zend_View_Helper_SiteTitle extends Zend_View_Helper_Abstract
{
public function siteTitle()
{
$siteTitle = getTitleFromDbSomehow();
return $this->view->escape(siteTitle);
}
}
然后在您的布局头部分中,您将拥有: -
<title><?php echo $this->siteTitle(); ?></title>
如果你想在身体的某个地方: -
<h1><?php echo $this->siteTitle(); ?></h1>
答案 1 :(得分:1)
首选方法是使用视图助手:
在application / views / helpers / Title.php中:
<?php
class Zend_View_Helper_Title extends Zend_View_Helper_Abstract
{
public function title()
{
$title = 'cut it out'; // or from database
return $this->view->escape($title);
}
}
在你的layout.phtml中:
echo $this->title();
但是,如果必须使用Bootstrap(例如,您想在控制器操作中覆盖):
<?php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initTitle()
{
$this->bootstrap('layout');
$layout = $this->getResource('layout');
$view = $layout->getView();
$view->title = 'Cut It Out';
}
}