是否可以将“setParameter”与“$ query-> expr() - > lt”?一起使用?我的查询的性质是比较两个日期时间类型列。
这有效
$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');
答案 0 :(得分:1)
p.updated
是一列,而不是您通过参数发送的字符串。如果您要比较两个列(相同或不同的表),您需要第一个(标题为'这适用于')。只有在发送日期值时才需要使用它:
$query
->orWhere(
$query->expr()
->eq('p.dateExportedToTranslation', ':date')
)
->setParameter('date', '0000-00-00 00:00:00');