1

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

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

那我怎样才能改变标准布局呢?

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

不工作:(

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

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

2 回答 2

2

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

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

然后只需在控制器中使用它:

$template = 'sometemplate.phtml';
$this->layout('templates/'.$template);
于 2012-12-04T17:18:53.737 回答
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/>')方法。

于 2012-12-04T15:28:31.747 回答