Mustache Php:partials构造函数不工作

时间:2018-06-13 01:21:09

标签: mustache.php

我正在尝试加载一个镜像,在该模板中是一个部分(嵌套模板)。 partials构造函数不应该呈现content部分吗?逻辑错误了吗? 类似的问题here但实施是不同的,没有答案。这个问题似乎已经死亡或被引向了一些类似的问题,但我的实施也有所不同。

base.mustache:

<body>  
{{>content}}
</body>

Mustache构造函数:

if(!isset($this->mustache)){
            $options = array(
              'loader'=> new Mustache_Loader_FilesystemLoader('path/to/templates/'),
              'partials_loader' => new Mustache_Loader_FilesystemLoader('path/to/partials'),
              'partials' => array(
                  'content'=> $this->module->tplFile
              )
            );
            $this->mustache = new Mustache_Engine($options);
        }

渲染模板:

public function display()
    {
      $this->mustache->render('base.mustache');
    }

1 个答案:

答案 0 :(得分:0)

首先,您甚至没有加载模板。

只需像这样编辑渲染模板部分:

public function display(){
  $this->mustache->loadTemplate('base')->render();
}

您可能会问,为什么只是'base'而不是'base.mustache'

好吧,小胡子默认情况下会加载.mustache文件,因此,如果您使用$this->mustache->loadTemplate('foo'),它将自动在您为文件加载器设置的路径下加载foo.mustache文件。

有关更多信息,您可以从mustache.php的官方Wiki的Template Loading部分签入。

顺便说一句,我的英语太烂了,希望您能理解我的意思。