方法作为Smarty中{if}的目标

时间:2010-02-12 02:44:11

标签: php smarty template-engine

有没有办法在Smarty模板中使用对象的方法调用作为条件的目标?

作为一个具体的例子,我有一个对象$user,其方法为loggedIn()。如果用户已登录,我想使用此方法显示额外信息。

我可以将此方法的返回值分配给临时变量,并将其用作{if}的目标:

{user->loggedIn assign="loggedIn"}
{if $loggedIn}
  // show extra info
{/if}

有没有办法跳过这个中间步骤?我喜欢这样的东西(不起作用):

{if user->loggedIn}
  // show extra info
{/if}

我在Smarty的文档中找不到使用这样的对象的任何示例。

1 个答案:

答案 0 :(得分:1)

使用assign_by_ref代替register_object

$smarty->assign_by_ref('user', $user);

然后你可以访问方法:

{if $user->loggedIn()}
    // show extra info
{/if}