0

我对 Smarty 很陌生,遇到了一些麻烦。我有一个 PHP 类,我们称之为A. 在A中,有一个方法,调用它M,我想在其中获取一个变量($var取整数值12),并在 HTML 页面上使用它,调用它mypage.html,它是另一个 HTML 页面的一部分,调用它MyPage.html

在相同的方法中,我将我的 HTML 代码分配给 smarty 分配,如下所示:

$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}

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

4

2 回答 2

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 解决方案以获得更聪明的东西。

于 2012-06-08T22:02:58.870 回答
0

最好使用Smarty 的 include函数,而不是渲染模板然后将其分配给变量。

$this->mySmarty->assign('contentTemplate', 'myPage.html');

然后

{include file="$contentTemplate"}

关于你的问题,代码是正确的,所以 $var 的值一定不是你所期望的。

var_dump($var);
于 2012-06-08T22:04:57.267 回答