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に1行追加しました:

'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 に答える