我的公共文件夹中有模板文件夹。
我希望有机会从我的管理面板上传不同的布局,并将它们放到公共/模板文件夹中。
如何更改标准布局呢?
$template = 'christmas.phtml';
$viewModel = new ViewModel();
$viewModel->setTemplate('/../../public/templates/'.$template);
无效:(
我也尝试过这种方式(改变布局)从当前开始:
$this->layout('../../public/templates/'.$template);
答案 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/>')
方法。