编辑原始帖子以使其更加清晰。现在有一个新的麻烦领域,我认为是纯语法。
我是 OOP 和 Zend Framework 2 的新手。试图了解部分的使用。我还在扩展一个由其他人首先启动的应用程序。因此,Entity/Gateway/Controller/View 的命名约定确保对于指定的操作,返回正确的模板。
我正在尝试使用“部分('/nav/index.phtml');” 作为在索引页的标题中插入一个片段的一种方式。但我想在其他页面上使用不同的部分。
按照 Marshall 的建议,在 TemplateController 中,我将一个变量 (nav_template) 添加到 viewModel 中,指定用于导航的部分:
<?php
namespace Application\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
class TplController extends AbstractActionController
{
public function topicAviewAction()
{
$viewModel = new ViewModel();
$viewModel->setTerminal(true);
$viewModel->setVariable('nav_template', 'nav/topica.phtml');
return $viewModel;
}
public function topicBviewAction()
{
$viewModel = new ViewModel();
$viewModel->setTerminal(true);
$viewModel->setVariable('nav_template', 'nav/topicb.phtml');
return $viewModel;
}
}
我使用下面的命令来验证我的变量是否包含在对象中,它是
echo $viewModel->nav_template;
但是,当我使用以下内容在 layout.phtml 中包含部分内容时:
<?php echo $this->partial(isset($nav_template) ? $nav_template : 'nav/index'); ?>
它显然没有使用/查找 $nav_template 的值。我哪里做错了?