smarty fetch include在获取的tpl页面上失败

时间:2013-09-15 22:26:09

标签: php smarty smarty3

我位于maindirexample / actions中的ajax php在maindirexample / templates中调用tpl文件一个文件夹

fetch('../templates/popupMyItems.tpl'); 

然而,这会引发错误

<br /> <b>Fatal error</b>: Uncaught exception 'SmartyException' with message 'Unable to load template file 'list-myItems.tpl' in '../templates/popupMyItems.tpl'

popupMyitems.tpl似乎被称为ok,但list-myItems.tpl失败(这包含在popupMyitems.tpl中)..

{foreach
            from=$uniquecategories item=category name=cat} 
            {if $smarty.foreach.cat.first} {include file="list-myItems.tpl"
            category="{$category|replace:' ':''}" active="true"} 
            {else} {include
            file="list-myItems.tpl" category="{$category|replace:' ':''}"
            active="false"} {/if}

{/foreach}

使用

{include file="../templates/list-myItems.tpl"}

也失败了:

'SmartyException' with message 'Unable to load template file 'list-myItems.tpl' in '../templates/popupMyItems.tpl'' in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\ex\libs\sysplugins\smarty_internal_templatebase.php:127 Stack trace: #0 C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\ex\libs\sysplugins\smarty_internal_template.php(286): Smarty_Internal_TemplateBase-&gt;fetch(NULL, NULL, NULL, NULL, false, false, true) #1 C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\ex\main\actions\templates_c\07c3452c9173e47b89ab427877861e26b839928c.file.popupMyItems.tpl.php(52): Smarty_Internal_Template-&gt;getSubTemplate('list-myItems.tp...', NULL, NULL, NULL, NULL, Array, 0) #2 C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\ex\libs\sysplugins\smarty_internal_templatebase.php(180): content_5236279826e113_69075833(Object(Smarty_Internal_Template)) #3 C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\ex\main\actions in <b>C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\ex\libs\sysplugins\smarty_internal_templatebase.php</b> on line

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:2)

您还需要从../templates/中包含它。 Smarty不会在“当前文件夹”中搜索包含内容,而是搜索设置中指定的include_dir。所以你应该做这样的事情:

{include file="../templates/list-myItems.tpl" category="{$category|replace:' ':''}" active="true"}