与用户一起请求组对象



我实际上正在学习Symfony,我正在制作自己的UserBundle,因为我必须使用在线API来管理用户。因此,我加入了用户和组对象,并具有多对一关系。目前一切正常。

Symfony在每个页面上实现User对象并获取组的id(参见var_dump(,但我希望从Symfony获取每个页面上的整个组对象,而不仅仅是它的id。

User {#467 ▼
-id: 104
-uuid: "~"
-username: "~"
-lastLogin: null
-websiteActivity: null
-clientToken: "1c667ad4-07e2-4ffa-8db1-9997eadbbc4b"
-accessToken: "b183f850ce4d4decb07cb7485c1d0a88"
-dataCheck: DateTime {#457 ▼
+"date": "2017-08-27 18:23:31.000000"
+"timezone_type": 3
+"timezone": "Europe/Berlin"
}
-reputation: 0
-group: Group {#456 ▼
+__isInitialized__: false
-id: 4
-inheritId: null
-name: null
-chatColor: null
-websiteName: null
-websiteColor: null
…2
}
}

如果你知道如何做到这一点,那将非常有帮助。

谢谢。

请记住,控制器上的$this->getUser()是以下内容的别名:

$this->container->get('security.token_storage')->getToken()->getUser();

可以查看使用自定义查询加载用户。 您可以使用它自动加入您的组实体:

public function loadUserByUsername($username)
{
return $this->createQueryBuilder('u')
->select('u, g')
->leftJoin('u.group', 'g')
->where('u.username = :username OR u.email = :email')
->setParameter('username', $username)
->setParameter('email', $username)
->getQuery()
->getOneOrNullResult();
}

这以前在Symfony版本中有记录<= 2.5,但为了清楚起见,从文档中删除了它,可能是因为在大多数情况下不需要它。 如果需要,也可以将其移动到UserRepository(如果存在(并从那里调用它。

这将在用户登录时生效。 尝试查看是否会自动检索您的组对象。

相关内容

  • 没有找到相关文章

最新更新