Doctrine orm 条令$query->;expr()->;带setParameter的lt

Doctrine orm 条令$query->;expr()->;带setParameter的lt,doctrine-orm,query-builder,Doctrine Orm,Query Builder,是否可以将“setParameter”与“$query->expr()->lt”一起使用?我的查询的本质是比较两个datetime类型的列 这很有效 $query ->orWhere( $query->expr() ->lt('p.dateExportedToTranslation', 'p.dateUpdated') ); 需要做什么调整才能使其工作 $query ->orWhere( $

是否可以将“setParameter”与“$query->expr()->lt”一起使用?我的查询的本质是比较两个datetime类型的列

这很有效

$query
    ->orWhere(
        $query->expr()
            ->lt('p.dateExportedToTranslation', 'p.dateUpdated')
    );
需要做什么调整才能使其工作

$query
    ->orWhere(
        $query->expr()
            ->lt('p.dateExportedToTranslation', ':dateUpdated')
    )
    ->setParameter('dateUpdated', 'p.dateUpdated');
这就是全部问题

$query = $this->entityManager
    ->createQueryBuilder()
    ->from('AMDatabase\Entity\TheVerse\PrayersForToday', 'p')
    ->select(
        'p.reference, p.languageIso, p.title, p.prayer,
         p.rssSentence, p.keywords, p.scriptureReferences,
         p.availableResourceWebsites, p.contributedByMembershipReference'
    )
    ->orderBy('p.reference', 'ASC')
    ->setMaxResults('25');

$query
    ->orWhere(
        $query->expr()
            ->eq('p.dateExportedToTranslation', ':date')
    )
    ->setParameter('date', '0000-00-00 00:00:00');

$query
    ->orWhere(
        $query->expr()
            ->lt('p.dateExportedToTranslation', ':dateUpdated')
    )
    ->setParameter('dateUpdated', 'p.dateUpdated');

p.updated
是通过参数发送的列而不是字符串。如果要比较两列(相同或不同的表),则需要比较第一列(标题为“This works”)。只有在发送日期值时,才需要使用以下选项:

$query
    ->orWhere(
        $query->expr()
            ->eq('p.dateExportedToTranslation', ':date')
    )
    ->setParameter('date', '0000-00-00 00:00:00');

让我们知道什么不起作用。不起作用的是使用“setParameter”绑定另一个表列以进行日期比较(在我的示例中使用“lt”)在我的初始帖子标题下“需要什么调整才能起作用”是我尝试过的。