Zend Framework 2中公用文件夹的自定义布局

时间:2012-12-04 15:25:44

标签: php zend-framework2

我的公共文件夹中有模板文件夹。

我希望有机会从我的管理面板上传不同的布局,并将它们放到公共/模板文件夹中。

如何更改标准布局呢?

$template = 'christmas.phtml';
$viewModel = new ViewModel();
$viewModel->setTemplate('/../../public/templates/'.$template);

无效:(

我也尝试过这种方式(改变布局)从当前开始:

$this->layout('../../public/templates/'.$template);

2 个答案:

答案 0 :(得分:2)

我找到了解决方案。我在module.config.php中添加了一行:

'view_manager' => array(
    ...
    'template_path_stack' => array(
        __DIR__ . '/../view',
        __DIR__ . '/../../../public' // newLine
    ),
),

然后在控制器中使用它:

$template = 'sometemplate.phtml';
$this->layout('templates/'.$template);

答案 1 :(得分:0)

您可以尝试$viewModel->setTemplate(APPLICATION_PATH .'/../public/templates/'.$template);$viewModel->setTemplate('./../../public/templates/'.$template);而不是$viewModel->setTemplate('/../../public/templates/'.$template);。因为我想你想从应用程序目录上升,而不是从根目录上升,而$template = 'christmas.phtml';应该是$template = 'christmas';

如果没有APPLICATION_PATH常量,您可以在index.php文件中定义它。如果您不想定义它,可以使用realpath('<path/to/your/public/templates/>')方法。