Symfony使用外键查询数据库



我正在使用Symfony 5,有一个关于使用外键从数据库检索的问题。

我有一个User实体和一个AdditionalInfo实体,它与User有1:1的关系,尽管实际上并不是所有用户都会有AdditionalInfo。AdditionalInfo实体上有一个用户字段:

/**
* @ORMOneToOne(targetEntity=User::class, inversedBy="AddInfo", cascade={"persist", "remove"})
* @ORMJoinColumn(nullable=false)
*/
private $user;

在数据库中,它将其存储为在我的控制器中,我有当前用户,并试图通过以下方式访问该用户的AdditionalInfo条目:

$user = $this->getUser();
$userId = $user->getId();

$aI= new AdditionalInfo();

$aI= $this->getDoctrine()
->getRepository(AdditionalInfo::class)
->findOneBy(['user' => '$userId']);    

这将获得正确的用户ID,但返回null。如果我尝试->findOneBy(['user'=>'$user'](

如果有任何建议,我将不胜感激。我想知道我是否需要开始尝试更改存储库。。。

我找到了一种方法:

$aI= $this->getDoctrine()
->getRepository(AdditionalInfo::class)
->findOneByUser($user);

我没有意识到findOneByUser方法是自动创建的,这真的很有帮助。

相关内容

  • 没有找到相关文章

最新更新