2011-05-17 58 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',第二个是 '用户名' )