我对Smarty很陌生,我遇到了一些麻烦。我有一个PHP类,我们称之为A
。在A
中,有一个方法,称之为M
,其中我想获取一个变量,($var
取一个整数值1
或2
),并在HTML页面上使用它,称之为mypage.html
,这是另一个HTML页面的一部分,称之为MyPage.html
。
在相同的方法中,我将我的HTML代码分配给一个聪明的分配,如下所示:
$this->mySmarty->assign('content', $this->fetch('mypage.html'));
然后我显示:
$this->display('MyPage.html');
但奇怪的是,当我分配一个聪明的变量时,var
我的 PHP 变量var
如下所示:
$this->mySmarty->assign('var', $var);
。页面MyPage.html
无法识别以下内容:
{if $var==1}<span>blabla<span>{/if}
有谁知道问题是什么?这是一个不正确的聪明语法吗?
在你的代码中,你似乎这样做
$this->mySmarty->assign('content', $this->mySmarty->fetch('mypage.html'));
在赋值变量之前。你应该尝试
$this->mySmarty->assign('var', $var);
$this->mySmarty->assign('content', $this->mySmarty->fetch('mypage.html'));
$this->mySmarty->display('MyPage.html');
但是预呈现模板然后将其分配给变量感觉有些不自然。检查@ddlshack解决方案以获得更聪明的东西。
最好使用 Smarty 的 include 函数,而不是渲染模板然后将其分配给变量。
$this->mySmarty->assign('contentTemplate', 'myPage.html');
然后
{include file="$contentTemplate"}
关于你的问题,代码是正确的,所以$var的值一定不是你所期望的。
var_dump($var);