2012-12-04 96 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 –

相關問題