Authentication 对其数据来自2个单独表/实体的用户进行身份验证

Authentication 对其数据来自2个单独表/实体的用户进行身份验证,authentication,symfony,doctrine,Authentication,Symfony,Doctrine,下面是我的数据库模式: 用户 液体* 用户名 用户认证 uid* 密码 使用这种模式,我遇到了Symfony2身份验证的大问题。我在以下网站读过这本食谱:。但是我的项目的数据模型与教程中的完全不同 如何从用户\u auth处获取用于身份验证的密码? 通常,我会考虑一个连接查询来获取这两个信息,然后将它们与用户提交的数据进行比较,但我不太了解ORM模型阻碍了我。创建一个用于放置自定义用户数据检索逻辑的连接查询。请注意,您的User类必须实现UserInterface接口。我已经找到了答案。

下面是我的数据库模式:

用户

  • 液体*
  • 用户名
用户认证

  • uid*
  • 密码
使用这种模式,我遇到了Symfony2身份验证的大问题。我在以下网站读过这本食谱:。但是我的项目的数据模型与教程中的完全不同

如何从用户\u auth处获取用于身份验证的密码?


通常,我会考虑一个连接查询来获取这两个信息,然后将它们与用户提交的数据进行比较,但我不太了解ORM模型阻碍了我。

创建一个用于放置自定义用户数据检索逻辑的连接查询。请注意,您的
User
类必须实现
UserInterface
接口。

我已经找到了答案。使用

在那之后,我坚持用ORM理论来解释我的去规范化模式。在通过更改模式以适应ORM而放弃之前,在阅读本教程后,我尝试再次映射ORM:。但它不像我想的那样有效。下面的答案帮助我找到了答案


  • 现在,一切正常。我很高兴能在需要时使用DBAL,但不会失去ORM的好处。

    谢谢。我也读过这个教程。但我还是停留在“//在这里打电话给你的网站服务”。事实上,我仍然从数据库中获取数据,而不是Web服务。我已经尝试使用EntityRepository扩展类,以通过条令获取数据,但DQL和ORM映射是下一个难点。在查询:“从MyUserBundle中选择u,a:User u加入a.uid a,其中u.uid=:id'”中,我如何告诉Doctrine UserAuth实体是“a”还是用户实体的“u”?我可以使用哪种映射器映射user.uid user\u auth.uid?我尝试过一对一,但似乎该理论不支持外键2PK@TungNguyen学说非常支持实体之间的一对一和一对多关系。然而,将用户数据放在两个单独的实体中有什么合理的理由吗?我没有被迫将用户数据放在两个单独的实体中,我现在可以使它变得简单,便于开发。但是我的应用程序仍然有另一个“必须分离”的实体(很多连接查询),所以我认为如果我不能通过这个挑战,我以后就不能做更多的事情了。我很担心,我是否应该切换到DBAL以便与DB进行强大的交互。。。但是关于DBAL和Symfony2的文档并不多,而且似乎Symfony2在ORM中工作得太紧了。无论如何,谢谢你的回答。我将研究更多关于数据建模的理论,然后再试一次。