尽管我将 Symfony 2.1 与 FOSUserBundle 一起使用并且一切正常,但我不知道如何解决问题。
基本上,我想知道是否有一种方法可以从数据库中查找(加载或获取)用户,同时考虑到与另一个实体的关系。
这是这种情况:
我已经让用户也可以通过社交网络(谷歌、Facebook、LinkedIn 等)登录我的网站。我还要求他们离线访问,这样我就可以随时访问他们的社交帐户。
由于每个用户都可以拥有任意数量的连接(或者可能没有,因为它们是可选的),因此我决定不将此信息保存在用户表中。我创建了一个名为“SocialConnection”的抽象实体,它由真实实体(Google、Facebook 等)扩展。在这个实体中,我存储了用户通过这些网络(user_id、social_id、access_token 等)登录我的网站时获得的用户信息,因此在我的 User 类中,我映射了一个抽象“SocialEngine”的集合,它允许我将所有网络连接在一起。
为了以后能加推特、雅虎等其他网络,我觉得应该是这样。
所以,现在的问题是,当用户通过任何这些社交网络登录我的网站时,我需要知道他的社交 ID 从数据库中加载他,但我不知道该怎么做。
我已经看到 UserManager 的 $this->findUserBy 方法找到了有关属性的用户,但我认为情况并非如此。
我应该怎么做才能找到一个好的解决方案?
提前致谢。
最好的问候,伊兹。