我正在使用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方法是自动创建的,这真的很有帮助。