php - 在 Doctrine ArrayCollection 中获取给定项目
问题描述
开发一个 API,在每个请求开始时,提供的 API 密钥用于获取与请求关联的 Account 对象。
$account = $em->getRepository(Entity\Account\Account::class)
->findOneBy(['mainKey'=>$request->getHeaderLine('X-API-Key')]);
此帐户实体包含一个用户ArrayCollection
,其中每个用户实体都包含一个username
给定帐户唯一的属性。
给定用户名,如何获取用户实体?我可以做类似以下的事情,但是,我觉得我应该做不同的事情。
$user = $em->getRepository(Entity\Account\User::class)
->findOneBy(['accountId'=>$account->getId(), 'username'=>'John.Doe']);
谢谢,
PS。我假设这findOneBy()
是在幕后使用准备好的语句并且不受 SQL 注入的影响,对吧?
PSS。我只是假设一个 ArrayCollection 包含一组对象,但是查看一些文档,现在不确定。
解决方案
如果Account
与User
(我想它是一对一的)相关,那么Account
应该$user
定义属性。你可以访问它:
$user = $account->getUser();
在哪里getUser
:
public function getUser()
{
return $this->user;
}
推荐阅读
- postgresql - 将 IFTHEN 条件放入触发函数
- reinforcement-learning - 多智能体强化学习代码
- node.js - 带有 nginx 客户端的套接字,但无法发送或收听
- php - SQLSTATE[HY000]: 一般错误 Yii2中正在执行的SQL
- vue.js - document.documentElement.scrollHeight 在 Vuejs 的函数内无法正确更新
- reactjs - 如何更改父 array.map() 中子输入的值
- java - 如何使用字符串规范解析字符串?
- istio - 无法区分 JWT 令牌过期错误和 Istio RBAC 访问被拒绝错误
- visual-studio-2019 - 在 Visual Studio 2019 中使用新项目创建 Git 存储库
- swift - Swift 通用 URLRequest