Smarty动态模板包含

时间:2014-02-07 17:06:27

标签: php smarty

有没有办法动态设置要包含的文件?当我尝试时,我收到一条错误消息(见下文)。例如,使用此模板:

/templates/main.tpl

<!DOCTYPE html>
<html>
    <head>
        <title>My Title</title>
    </head>
    <body>
        {include file='$file'}
    </body>
</html>

这个PHP代码:

<?php
switch($page){
    case "page1":
         $file = "/templates/page1.tpl";
         break;
    case "page2":
         $file = "/templates/page2.tpl";
         break;
    case "page3":
         $file = "/templates/page3.tpl";
         break;
}
$smarty->assign("file", $file);
$smarty->display("/templates/main.tpl");

Smarty然后把这个错误抛给我:

  

无法在'/templates/main.tpl'

中加载模板文件'$ file'

有没有办法动态设置要在该位置使用的模板?

1 个答案:

答案 0 :(得分:4)

好的我明白了!

Smarty不喜欢变量周围的引号。

因此,{include file='$file'}变为{include file=$file}