我有一张table叫 Code
,具有 id
, code
和一个 creationDate
.
假设我有一个对象,我想把它插入这个表中,但是我想检查是否已经有一个对象具有相同的 id
设置或相同 code
.
我已经意识到用这种方法是不可能的 findBy()
或者 findByOne()
我很可能不得不使用querybuilder。
但有几件事我不明白。我真的很惊讶,我在网上找不到答案。。。
首先,这是我当前的查询代码:
$query = $this->entityManager->createQueryBuilder()->select('id', 'X')->from('Code', 'X')->where('id = 3');
如你所见,我写了两次“x”。有人能告诉我那是什么吗?因为我得想办法把它调好。这个 from()
方法至少需要两个参数。我读到它是某种别名,但为什么我需要声明它,它有什么目的?另外,我几乎100%肯定也有语法错误(不幸的是,我的ide没有标记语法错误或类似的东西,但那是不同的。)如果有人能花几分钟向我解释这一点,我将不胜感激。
还有,一旦我宣布 $query
,我必须执行它还是什么?我真的不知道这是怎么回事。我很抱歉,我真的觉得自己很愚蠢,因为没有得到这个最简单的东西。。。
事先非常感谢。
1条答案
按热度按时间kx5bkwkv1#
请参阅条令-首先是querybuilder,您需要这样做
->getQuery()->getResult()
创建查询之后。这就是结果。但您也可以使用它来仅返回一个计数,因为您只想知道是否存在“冲突”记录。
另外,由于只包含1个实体,因此不需要声明别名。
编辑:在op的评论后添加参数。