在{php}中为smarty分配新变量

在{php}中为smarty分配新变量,php,templates,smarty,Php,Templates,Smarty,目前我在一个模板中,需要{php}从模型/数据库中读取一些内容。现在,这将是当前模板中的一个新smarty变量。我如何解决这个问题 e、 g: 这里的正确代码是什么 (Yee,不常见且不抽象,但仅用于快速原型制作。代码稍后将放入控制器。) 要从模型中获取某些信息,请执行以下操作: {php} global $currentTemplate; $this->_tpl_vars['variableName']; {/php} $此引用当前smarty实例: {php} $this->a

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

e、 g:

这里的正确代码是什么

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

要从模型中获取某些信息,请执行以下操作:

{php}
global $currentTemplate;
$this->_tpl_vars['variableName'];
{/php}

$此
引用当前smarty实例:

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

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

Mmm。。。不知道{capture}在这种情况下是否有帮助。不要在模板内调用models方法。在PHP文件外部、内部调用它,并将变量分配给模板。但是,无论如何,我认为你不应该写
$currentTemplate
,而应该写
$this
,它会起作用。我不敢相信,新的帖子会被接受,而第一篇正确的帖子却被忽略了。伙计们,你们应该公平行事哦<代码>全局在模板内部它很有趣=)哦,它在对象本身中-很好!就这样,谢谢!Yee,它缺乏抽象性,但我以某种方式为客户创建了我的问题原型,并等待项目负责人度假回来,向我展示这段非常混乱的代码中的正确位置;)
{php}
global $currentTemplate;
$this->_tpl_vars['variableName'];
{/php}
{php}
$this->assign('foo', 'bar');
{/php}
{$foo}