我正在为我的某个存储库创建一个查询,并希望按包含元素集合的字段对结果进行排序。
我知道,我可以使用点符号来访问单个对象的属性。但是,还有一种方法可以访问,例如,集合的第一个条目吗?
...
$query = $this->createQuery();
if ($orderBy == 'collection') {
if ($ordering == 'ascending') {
$query->setOrderings(
array(
// Get only the first entry of the collection
"collection.first.attribute" => \TYPO3\Flow\Persistence\QueryInterface::ORDER_ASCENDING
)
);
} else {
$query->setOrderings(
array(
// Get only the first entry of the collection
"collection.first.attribute" => \TYPO3\Flow\Persistence\QueryInterface::ORDER_DESCENDING
)
);
}
}
...
模型中集合的定义
/**
* @var \Doctrine\Common\Collections\Collection<\Central\Domain\Model\Location>
* @ORM\ManyToMany()
*/
protected $collection;
因此,位置是另一个具有我想要访问的字段“属性”的模型。
现在我尝试从集合中访问第一个 - 或理想情况下 - 特定元素。这可能直接在查询中吗?