用聪明的引擎读取变量

时间:2012-06-08 21:29:25

标签: php class smarty

我对Smarty很新,我遇到了一些麻烦。我有一个PHP类,我们称之为A。在A中,有一种方法,称之为M,其中我想要获取变量,($var采用整数值12 ),并在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}

有谁知道问题是什么?这是一个不正确的聪明语法吗?

2 个答案:

答案 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);