具有智能引擎的读取变量


Reading variable with smarty engine

我对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'); 

但奇怪的是,当我分配一个聪明的变量时,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);