2012-12-04 70 views
1

我的公用文件夹中有模板文件夹。Zend Framework中公用文件夹的自定义布局2

我想有机会从我的管理面板上传不同的布局,并将它们放到public/templates文件夹中。

我该如何更改标准布局?

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

不会从当前的工作:(

我也试过这种方式(改变布局)了:

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

回答

2

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

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

然后,只需在控制器使用:

$template = 'sometemplate.phtml'; 
$this->layout('templates/'.$template); 
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/>')方法。

+0

同样的结果:(服务器不给任何解释,除了500 ?错误 –

+0

其中公用文件夹位于应用程序路径,或在您的磁盘目录 –

+0

结构为标准: .. 公共 - > 模板 - > default.phtml, 模块 - > 应用程序 - > src - > 控制器 - > IndexController.php –

相关问题