2016-02-12 56 views
0

我使用Silex开始了一个新项目,它看起来像一个酷酷而快速的框架,但是我对SecurityServiceProvider试图获得uid感到非常疯狂。虽然它应该像Symfony那样的getId(),但我得到一个错误,该函数不存在。在Silex项目的数据库中获取userId

PHP Fatal error: Call to undefined method Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage::getUser()

如果我得到当前记录的用户,我有他的信息,但不是Id。

$user = $app['user']; 
print_r($user); 

Symfony\Component\Security\Core\User\User Object ( [username:Symfony\Component\Security\Core\User\User:private] => [email protected] [password:Symfony\Component\Security\Core\User\User:private] => 5FZ2Z8QIkA7UTZ4BYkoC+GsReLf569mSKDsfods6LYQ8t+a8EW9oaircfMpmaLbPBh4FOBiiFyLfuZmTSUwzZg== [enabled:Symfony\Component\Security\Core\User\User:private] => 1 [accountNonExpired:Symfony\Component\Security\Core\User\User:private] => 1 [credentialsNonExpired:Symfony\Component\Security\Core\User\User:private] => 1 [accountNonLocked:Symfony\Component\Security\Core\User\User:private] => 1 [roles:Symfony\Component\Security\Core\User\User:private] => Array ([0] => ROLE_USER))

任何想法?提前致谢!

回答

0
// Symfony 2.6+ 
$token = $app['security.token_storage']->getToken(); 

// Symfony 2.3/2.5 
$token = $app['security']->getToken(); 

获取用户信息:

$user = $token->getUser(); 

检查$user

var_dump($user); 
+0

我做到了,并得到了相同的 –

+0

你已经安装了作曲家需要symfony /安全权吗?并注册到您的$应用程序? –

+0

当然,如果没有,我不能做登录过程。 –

0

好得到了解决,如果有人实现了一个新的UserProvider,应增加对供应商的海关领域,在Symfony的User类中定义它们。不管怎么说,还是要谢谢你!

相关问题