将“CASE WHEN”条件存储在 Doctrine2 实体中
2022-08-30 22:29:23
从原则2.1开始,CASE WHEN语句是受支持的,但是没有很多关于它的文档。我的目标是设置一个布尔值来判断用户是否收藏了照片:
->addSelect("CASE WHEN f.photo is NULL THEN false ELSE true END as is_favorited")
->leftJoin("p.favorites", 'f', 'WITH', 'f.owner = :viewer')
->orderBy("p.date_posted", "DESC")
->setParameters(array("owner" => $owner, "viewer" => $viewer));
但是,由于我的实体正在由 JMSSerializer 转换为 json,因此我想将 CASE WHEN 结果设置为实体上的属性。
->addSelect("CASE WHEN f.photo is NULL THEN false ELSE true END as p.is_favorited")
但不可原谅的教义似乎并不喜欢这样:
[语法错误] 第 0 行,第 65 列:错误:预期原则\ORM\查询\词法分析器::T_FROM,得到'。'
除了在实体上设置 DQL 创建的属性之外,是否有其他方法?