Мне не нравится идея делать базовую сортировку внутри представления (mvc).
Недостаток большинства абстракций базы данных Слои ist, что вы часто нередко ограничиваетесь mxc mixup или имеют (иногда немного) более низкую производительность.
Я нахожусь в том же месте прямо сейчас. Я думаю о возвращении родителей (с привязанными детьми). Затем перейдите к каждому родительскому объекту и получите дочерние элементы для этого родителя отсортированным способом.
public function findAllSorted() {
$query = $this->createQuery();
/* sort parents */
$query->setOrderings(array('name' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING));
$parents = $query->execute();
foreach($parents as $parent){
/* get children for every parent */
$children = $this->getChildrenSorted($parent);
// add children to parent TBD
}
/* Debug output */
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($parents);
}
public function getChildrenSorted(\mynamespace\ $parent) {
/* Generate an object manager and use dependency injection to retrieve children repository */
$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('\TYPO3\CMS\Extbase\Object\ObjectManager');
$childrenRepository= $objectManager->get('MYNAME\Extname\Domain\Repository\Repository');
$children = $versionRepository->findSortedByName($parent);
return $children;
}
Функция findSortedByName
внутри детей РЕПО использует
$query->matching($query->equals('parent', $parent));
получить только дети этого родителя и
$query->setOrderings(array('name' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING));
, чтобы иметь возможность вернуть их в упорядоченном пути.
Предупреждение. В зависимости от размера и количества всех извлеченных объектов этот способ может вызвать огромную проблему с производительностью.
Является ли модель предмета детским объектом? Конечно, это работает, если я получаю элементы непосредственно из метода ItemRepository findAll, но не получаю дочерние объекты от родительского объекта. Или я ошибаюсь? – LuJaks
А я полностью извиняю эту часть, извините. Googling «extbase sort child objects» показал немало результатов. Кроме того, похоже, есть суперкомпьютер fedext http://fluidtypo3.org/viewhelpers/fed/Data/SortViewHelper.html, который может сделать это в представлении – Urs
Вот правильный URL http://fluidtypo3.org/viewhelpers/vhs/ 1.8.3/Итератор/SortViewHelper.html – Urs