2014-02-14 68 views
0

我在用樹枝獲取用戶變量時遇到了問題。 當我做的var_dump(app.user)我得到以下幾點:Symfony2&Twig,獲取用戶變量

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) 

我已經添加了「全名」,這是不是FOSUSerbundle的一部分。

現在,當我嘗試在樹枝中輸出新變量(fullName)時,它告訴我它不存在(??)雖然標準變量工作正常(用戶名,電子郵件..)起初我以爲它是因爲我把fullName私人化,但是在保護時也不起作用。另外在vardump,他們看起來完全一樣

我輸出變量是這樣的:{{ app.user.username }}{{ app.user.fullName }}

ANY1可以點我在正確的方向?或者幫助解釋我做錯了什麼。 任何幫助深表感謝:-)感謝

+2

你的實體中有'getFullName'方法嗎? –

+0

使用公共而不是保護。 – Dezigo

+1

@Dezigo作爲公衆的實體財產是非常糟糕的主意。 – NHG

回答

3

在枝杈您可以通過多種方法訪問對象變量:

  • 公共變量。 user.fullName直接指向用戶對象變量,就像在php中調用$ object-> fullName一樣php

  • 公共方法。 user.fullName指向getFullName()用戶對象的方法,就像在php中調用$ object-> getFullName()一樣。

因此,要麼讓全名市民或添加getFullName()方法(推薦)。

+0

非常感謝!現在工作:-) –

1

您必須添加getter方法fullNameApp\Bundle\CoreBundle\Entity\Employee實體:

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

這應該是'getFullName()'是一個getter。 – qooplmao

+0

@Qoop Typo,THX。固定。 – NHG

2

protected指variabile的可用只是同一類和子類的實例,但不從其他地方。

爲您提供適當的public吸氣劑,例如, public function getFullname(){ return $this -> fullName; }