首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QueryBuilder中的一对一关系

QueryBuilder中的一对一关系
EN

Stack Overflow用户
提问于 2020-02-19 17:51:10
回答 1查看 22关注 0票数 0

我正在尝试用QueryBuilder查询一个删除已经使用过的对象。正确的Mysql查询是:

代码语言:javascript
复制
SELECT * FROM token LEFT JOIN att_token ON token.id = att_token.id_token_id WHERE att_token.id_utilisateur_id IS null ORDER BY token.num_serie ASC

我的存储库中的QueryBuilder是:

代码语言:javascript
复制
'query_builder' => function (EntityRepository $Token) {
  return $Token->createQueryBuilder('u')
  ->from('App\Entity\AttToken', 'att_token')
  ->LeftJoin('att_token.IdToken','attu')
  ->Where('att_token.IdUtilisateur IS null')
  ->orderBy('u.numSerie', 'ASC');

但是我没有结果,没有错误。我不知道我哪里错了..。

我在Token和AttToken实体之间有一个OneToOne关系,在AttToken中我有关系描述,但在Token实体中没有...

如果有人有个主意..。

祝您今天愉快。

EN

回答 1

Stack Overflow用户

发布于 2020-02-20 15:22:15

我解决了。我开始删除AttToken上的IdToken属性。然后我使用

代码语言:javascript
复制
php bin/console make:entity

要再次创建它,并回答是,

代码语言:javascript
复制
Do you want to add a new property to Token so that you can access/update AttToken objects from it - e.g. $token->getAttToken()? (yes/no) [no]:

然后我的createQueryBuilder就会像这样:

代码语言:javascript
复制
->LeftJoin('u.attToken','attu')
->Where('attu.IdUtilisateur IS null')
->orderBy('u.numSerie', 'ASC');

祝您今天愉快

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60297402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档