我对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');
但奇怪的是,当我将一个smarty变量var
分配给我的PHP变量var
时,这样:
$this->mySmarty->assign('var', $var);
...页面MyPage.html
无法识别以下内容:
{if $var==1}<span>blabla<span>{/if}
有谁知道问题是什么?这是一个不正确的聪明语法吗?
答案 0 :(得分:0)
在你的代码中,你似乎做了
$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解决方案,寻找更聪明的东西。
答案 1 :(得分:0)
最好使用Smarty's include函数,而不是渲染模板,然后将其分配给变量。
$this->mySmarty->assign('contentTemplate', 'myPage.html');
然后
{include file="$contentTemplate"}
关于您的问题,代码是正确的,因此$ var的值不能是您所期望的。
var_dump($var);