Php 动态加载视图

Php 动态加载视图,php,mustache,Php,Mustache,我正试着用胡子做一个模板 layout.mustache -- view/page1.mustache -- view/page2.mustache -- view/page3.mustache 我将加载程序设置为layout.mustache,将分区设置为view目录 在这之前一切都好 基于下面的层次结构,我尝试在主布局中加载一个视图,如下所示 $m->render('layout', array('page' => 'page1')); 在我的布局中,{{>page}不起作用

我正试着用胡子做一个模板

layout.mustache
-- view/page1.mustache
-- view/page2.mustache
-- view/page3.mustache
我将加载程序设置为layout.mustache,将分区设置为view目录

在这之前一切都好

基于下面的层次结构,我尝试在主布局中加载一个视图,如下所示

$m->render('layout', array('page' => 'page1'));
在我的布局中,
{{>page}
不起作用。它正在返回“page1”它没有加载胡子文件

我是lesslogic模板的新用户,所以我需要您的帮助。。。也许我想做的是不可能的


感谢您将来的帮助。

如果Mustach支持这样的事情,它看起来会像
{{>{{page}}}
,因为您所说的不是“加载页面模板”,而是“加载名为(页面变量值)的模板”。这是非常“逻辑”的一方,所以它不是胡子支持的东西

也就是说,你可以做你想做的事,你只需要有一点创造性:)

你可以用类似的东西劫持Mustach的partials加载程序

然后,您将使用它作为部分加载程序实例化Mustach:

$m = new Mustache_Engine(array(
    'partials_loader' => FilesystemAliasLoader('path/to/views')
));
现在,在渲染之前,您需要为
页面
部分设置一个别名:

$m->getPartialsLoader()->setTemplate('page', 'page1');
$m->render('layout', $data);

当Mustache到达
{{>page}}
partial时,它要求文件系统管理员加载“page”。它在别名中查找“page”,并确定您的意思是“page1”,然后加载
视图/page1.mustache

如果mustache支持这样的功能,它看起来就像
{{{page}}}
,因为您所说的不是“加载页面模板”,而是“加载名为(页面变量值)的模板”。这是非常“逻辑”的一方,所以它不是胡子支持的东西

也就是说,你可以做你想做的事,你只需要有一点创造性:)

你可以用类似的东西劫持Mustach的partials加载程序

然后,您将使用它作为部分加载程序实例化Mustach:

$m = new Mustache_Engine(array(
    'partials_loader' => FilesystemAliasLoader('path/to/views')
));
现在,在渲染之前,您需要为
页面
部分设置一个别名:

$m->getPartialsLoader()->setTemplate('page', 'page1');
$m->render('layout', $data);
当Mustache到达
{{>page}}
partial时,它要求文件系统管理员加载“page”。它在别名中查找“page”,并确定您的意思是“page1”,然后加载
view/page1.mustache