4

目前我在一个模板中,需要 {php} 从模型/数据库中读取一些东西。这现在应该是当前模板中的一个新的 smarty 变量。我该如何解决这个问题?

例如:

{php}
   $var["newSmartyVar"] = model_gimme_data();
   $currentTemplate->assign($var);
{/php}

The value is {$newSmartyVar} !

这里的正确代码是什么?

(是的,不常见且不抽象,但仅用于快速原型制作。代码将在稍后进入控制器。)

4

2 回答 2

2

$this指当前 smarty 实例:

{php}
$this->assign('foo', 'bar');
{/php}
{$foo}

但是,您应该避免像瘟疫一样的 {php}。使用 {php} 是缺少抽象的标志。您可以考虑创建一个函数插件。

于 2012-09-03T08:27:29.373 回答
0
{php}
global $currentTemplate;
$var = model_gimme_data();
$currentTemplate->assign('newSmartyVar',$var);
{/php}

从模型中得到一些东西:

{php}
global $currentTemplate;
$this->_tpl_vars['variableName'];
{/php}
于 2012-09-03T08:14:43.753 回答