代码之家  ›  专栏  ›  技术社区  ›  Ed Mazur

方法作为smarty中if的目标

  •  0
  • Ed Mazur  · 技术社区  · 15 年前

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

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

    我可以将此方法的返回值赋给一个临时变量,并将其用作 {if} :

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

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

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

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

    1 回复  |  直到 15 年前
        1
  •  1
  •   Deebster    15 年前

    使用 assign_by_ref 而不是 register_object :

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

    然后您可以访问方法:

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