[TYPO3-german] Extbase: Sortierung von Kindobjekten
Chris
typo3 at mediadreams.org
Thu Mar 8 17:50:17 CET 2018
Guten Abend!
ich versuche die Sortierung von Extbase-Kindobjekten zu beeinflussen.
Mit folgender Deklaration hängen die Kindobjekte an meinem Objekt dran, sind aber nicht so sortiert, wie ich es gerne hätte:
Model:
/**
* News
*
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\Vendor\Events\Domain\Model\News>
* @lazy
*/
protected $news = null;
Was ich schon probiert habe:
Eltern-Repository:
/**
* The repository for Events
*/
class EventRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
{
/**
* Default ordering for all queries created by this repository
*/
protected $defaultOrderings = array(
'start' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING,
'news.datetime' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING
);
}
Repository des Kindobjekts:
class NewsRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
{
/**
* Default ordering for all queries created by this repository
*/
protected $defaultOrderings = array(
'datetime' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_DESCENDING
);
}
Im Model könnte ich natürlich in der Methode getNews() das Repository laden und dort entsprechend sortiert die Daten holen
/**
* Returns the news
*
* @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\Vendor\Events\Domain\Model\News> $news
*/
public function getNews()
{
$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
$repository = $objectManager->get('Vendor\\Events\\Domain\\Repository\\NewsRepository');
$this->news = $repository->getEventNews($this->getUid());
}
Problem hierbei ist, dass ich dann eine Validierungsfehler bekomme:
Validation failed while trying to call Vendor\Events\Controller\EventController->showAction().
Übersehe ich etwas, oder gibt es keine Möglichkeit, die Kindobjekte zu sortieren?
Danke euch!
chris
More information about the TYPO3-german
mailing list