在 Doctrine 中获取具有多个关系的最后一个实体

Getting Last Entity with more than one Relation in Doctrine

我正在尝试获取我的最新实体,该实体具有多个图像实体作为 OneToMany 连接。

代码:

$qb->select("a")->from("album","a");
$qb->having("count(a.images) > 0");
$qb->orderBy("a.id","DESC");
$qb->setMaxResults(1);

错误:

Fatal error: Uncaught exception 'Doctrine\ORM\Query\QueryException' with message 'SELECT a FROM Album a HAVING count(a.images) > 0 ORDER BY a.id DESC' in ... /vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php:41 Stack trace:...

我发现错误在第二行,我也试过了$qb->where("count(a.images) > 0")

希望你能帮助我。如果您需要更多信息,请告诉我。

编辑:

我现在也尝试添加 groupBy 语句并将图像加入相册

$qb->select("a")->from("album","a")->join("a.images","i");
$qb->groupBy("a.id")->having("count(a.images) > 0");
$qb->orderBy("a.id","DESC");
$qb->setMaxResults(1);

所以我刚刚找到答案:

$qb->select("a")->from("album","a")->join("a.images","i");
$qb->groupBy("a.id")->having("count(i.id) > 0");
$qb->orderBy("a.id","DESC");
$qb->setMaxResults(1);

重要的是使用 i.id 而不是 a.images