有没有办法动态设置要包含的文件?当我尝试时,我收到一条错误消息(见下文)。例如,使用此模板:
/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'
有没有办法动态设置要在该位置使用的模板?
答案 0 :(得分:4)
好的我明白了!
Smarty不喜欢变量周围的引号。
因此,{include file='$file'}
变为{include file=$file}