未捕获的异常' SmartyException'消息' SMARTY中缺少模板名称

时间:2014-09-25 18:18:23

标签: smarty

我希望更改带有条件的块的内容(isset($ file)),但是当我运行我的代码时,我看到一个错误的模板名称缺失

public function food_list()
{
    $m_food=new M_food();
    $arr=$m_food->food_list();
    $smarty=new Smarty_restaurant();
    $smarty->assign("title","New food");
    //$smarty->assign("file","../../views/v_food_list.tpl");
    //$smarty->assign("arr",$arr);
    $smarty->display ("food_list.tpl");
}

这是food_list.tpl文件

{extends file="index.tpl"}
{block name="head"}{include file="head-food.tpl"}{/block}
{block name="slide"}{/block}
{if isset($file)}
{block name="content"}{include file=$file}{/block}
{else}
{block name="content"}{/block}
{/if}

我在$ smarty-> assign(“。/../ views / v_food_list.tpl”)之前添加//时出现错误模板名称错误 我需要一个详细解答我的问题,请帮助我。非常感谢你

2 个答案:

答案 0 :(得分:0)

问题是{block}是在Smarty文件的其余部分之前编译的,因此您应该尝试将Smarty文件更改为:

{extends file="index.tpl"}
{block name="head"}{include file="head-food.tpl"}{/block}
{block name="slide"}{/block}
{block name="content"}
{if isset($file)}
{include file=$file}
{/if}
{/block}

答案 1 :(得分:0)

原因是变量$ file未设置或为空。 您应该确保您的变量$ file不为空,其值是有效的模板路径。