2016-04-26 48 views
1

我在Twig(Symfony 3)中的用戶對象的顯示ID有問題。例如,我可以轉儲用戶對象:樹枝 - 訪問用戶對象ID

{% for user in usersObject %} 
    {{ dump(user) }} 
{% endfor %} 

,我得到的結果:

User {#236 ▼ 
    -id: 1 
    #email: "[email protected]" 
    -username: "admin" 
    -password: "$2y$13$TW.gB06kBOBtc04Fti176OQBzNRh79G9tDIqNEf098/ADHsQkbM4W" 
    -permissions: "ROLE_SUPER_ADMIN" 
    -isActive: true 
    -createDate: DateTime {#232 ▶} 
    -lastLogin: DateTime {#233 ▶} 
    -userCookie: "" 
} 

我可以顯示該對象的所有元素:

<tr> 
    <td>{{ user.username }}</td> 
    <td>{{ user.permissions }}</td> 
    <td>{{ user.password }}</td> 
</tr> 

但我不能顯示ID :

<tr> 
    <td>{{ user.id }}</td> 
</tr> 

當我托盤使用上面的代碼我收到錯誤消息:

Method "id" for object "...\....\...\...\....html.twig" does not exist in @.../admin/form/usersList.html.twig at line 15 
+1

如果您嘗試添加getter方法,屬性ID會發生什麼:'public function getId(){return $ this-> id; ''用戶'實體? – Miro

+0

你的答案解決了我的問題 - 現在一切正常。 你能解釋爲什麼嗎?我認爲所有東西都發送到我的用戶對象中(我從轉儲中看到了我的數據!),我可以從user.XXX而不是實體獲取所有內容。 –

+0

你沒有發佈實體,但我懷疑,你沒有getter和該屬性被設置爲私人(或受保護),所以枝不能到達它。如果你有所有類的getter函數和相關的屬性,總是最好的...可能小枝使用不同的機制來顯示轉儲,但我將不得不研究小枝的源代碼...;) – Miro

回答

2

正如上述評論的討論,增加公共getter函數getId到實體User幫助:

public function getId() { 
    return $this->id; 
}