【发布时间】:2014-08-19 14:44:23
【问题描述】:
我遇到的问题是,在捆绑包中,我将用户设置在令牌上以传递给安全上下文。这对我进行了身份验证,并且工作正常。但是,每当我通过这样做从另一个包中的安全上下文中检索该用户时:
$this->getUser()
我得到了正确的实体,所有数据都在那里,但是 Doctrine 说它不是托管实体。
在令牌上设置用户的代码如下:
protected function logUserIn($userId, $name, $locale, $roles, $permissions)
{
$csbAuthUser = new User($name, $userId, $roles, $locale, $permissions);
$token = new UsernamePasswordToken(
$csbAuthUser,
null,
'csb',
$roles
);
if ($this->csbAuthEntityString) {
$user = $this->entityManager->getRepository($this->csbAuthEntityString)- >findOneBy(array(
'connectSBUser' => $userId,
)
);
$user->setUsername($name);
$user->setRoles($roles);
$user->setLocale($locale);
$user->setPermissions($permissions);
$token = new UsernamePasswordToken(
$user,
null,
'csb',
$roles
);
}
$this->securityContext->setToken($token);
这是一个问题,因为每次我想更新与用户实体有联系的任何内容时,Doctrine 都会说它在关系中找到了一个新实体。
【问题讨论】:
标签: symfony doctrine-orm