[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