我希望更改带有条件的块的内容(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”)之前添加//时出现错误模板名称错误 我需要一个详细解答我的问题,请帮助我。非常感谢你
答案 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不为空,其值是有效的模板路径。