2011-05-17 53 views
2

我正在使用symfony 1.4 &我使用sfDoctrineGuardPlugin作爲驗證工具。如何從sfUser中獲取ID?

我想捕捉用戶的Id以便將它存儲在我的表中。

經過一個小小的研究,我想我必須使用該表達式:getUser()->getGuardUser()->getId()

我在尋找的是如何爲我的目標投資這個表達式。

+3

你可以擴展「爲我的目標投資表達」嗎?你到底想做什麼? – 2011-05-17 09:40:54

+0

「我尋找的是如何爲我的目標投資這個表達。」 Yups,請詳細說明.... – Flukey 2011-05-17 11:14:57

回答

6

如果用戶通過認證,是的,你可以使用:

// inside an action 
$id = $this->getUser()->getGuardUser()->getId(); 

// inside a template 
$id = $sf_user->getGuardUser()->getId(); 

如果用戶沒有通過驗證,它會拋出一個錯誤。

+0

這就是我正在使用的,相同的指令,但我正在尋找的是如何保存具有$ id作爲屬性之一的對象?那意味着我如何修改我的動作來做到這一點? – LJme 2011-05-20 08:52:53

+0

你能解釋一下「屬性之一」的含義嗎?你處理什麼不同的對象? – Tom 2011-05-20 14:25:38

+0

我想從表單中隱藏該字段(id)&當我點擊保存時,它必須自動保存。所以我應該修改我的動作來做到這一點:$ id = $ this-> getUser() - > getGuardUser() - > getId();對於我試圖保存的對象 – LJme 2011-05-25 10:14:44

3

取決於您在哪裏打電話。

從 '視圖':

echo $sf_user->getAttribute('user_id', null, 'sfGuardSecurityUser'); 
echo $sf_user->getUsername(); 

從 '控制器'(如由湯姆上面提到):

echo $this->getUser()->getGuardUser()->getId(); 
echo $this->getUser()->getGuardUser()->getUsername(); 

(第一行是 'ID',第二個是 '用戶名' )