繁体   English   中英

Symfony2&Twig,获取用户变量

[英]Symfony2 & Twig, getting user variable

在Twig中获取用户变量时遇到问题。 当我做var_dump(app.user)时,我得到以下信息:

object(App\Bundle\CoreBundle\Entity\Employee)[1233]
  protected 'id' => int 1
  private 'group' => int 0
  protected 'fullName' => string 'Daniel Mensing' (length=14)
  protected 'username' => string 'dm' (length=2)
  protected 'usernameCanonical' => string 'dm' (length=2)

我添加了“ fullName”,它不是FOSUSerbundle的一部分。

现在,当我尝试在树枝中输出新变量(fullName)时,它告诉我它不存在(??)标准变量起初很好用(用户名,电子邮件..),我认为这是因为我做了fullName私人的,但在受保护时都不起作用。 同样在vardump中,它们看起来完全一样

我正在这样输出变量: {{ app.user.username }}{{ app.user.fullName }}

任何人都可以指出正确的方向吗? 或帮助解释我在做什么错。 任何帮助都非常感谢:-)谢谢

在Twig中,您可以通过以下几种方法访问对象变量:

  • 公共变量。 user.fullName直接指向用户对象变量,例如如果您在php中调用$ object-> fullName

  • 公开方法。 user.fullName指向用户对象的getFullName()方法,就像您在php中调用$ object-> getFullName()一样。

因此,可以将fullName getFullName() public或添加getFullName()方法(推荐)。

protected意味着可变性仅可用于相同的类和子类实例,而不能用于其他任何地方。

为您的班级提供适当的public ,例如, public function getFullname(){ return $this -> fullName; } public function getFullname(){ return $this -> fullName; }

你必须增加对吸气fullName外地在App\\Bundle\\CoreBundle\\Entity\\Employee实体:

public function getFullName() {
    return $this->fullName;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM