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
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german