---
title: "Kindobjekte sortieren"
url: "https://www.typo3.net/d/117770-kindobjekte-sortieren"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Frage"]
created: "2014-03-31"
last_reply: "2014-04-14"
replies: 7
solved: false
page: 1
pages: 1
lang: "de"
---

# Kindobjekte sortieren

Extensions › Entwicklung · 7 Antworten · gestartet 2014-03-31

## Eröffnungsbeitrag

**oliando** · 2014-03-31 · [Beitrag #1](https://www.typo3.net/d/117770-kindobjekte-sortieren/1)

Hallo!

Ich bin anfänger im Bereich der Extensionentwicklung und stehe mal wieder vor einem Problem.
Ich babe zwei Tabellen dich ich über eine 1:n Beziehung verknüpft habe. Funktioniert alles soweit.
Dabei handelt es sich um eine Tabelle mit Fahrzeugdaten und eine mit Buchungsdaten.
Jedes Fahrzeug hat unterschiedliche Buchungen. Jetzt gebe ich meine Fahrzeuge aus, sofern sie gebucht wurden. Funzt.
Jetzt will ich allerdings die Buchungsdaten nach dem Buchungsdatum sortieren? Sozusagen die Kindobjekte sortieren. Jedoch bekomme ich das nicht hin.
Habe es schon so probiert:

```php
$query->setOrderings(array('buchungsdaten.startdatum' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING));
```

Jedoch ohne Erfolg.

Weis jemand wie das funktioniert und kann mir einen Tipp geben?

Gruß Oliando

## Antworten

### [#2](https://www.typo3.net/d/117770-kindobjekte-sortieren/2) · jenses · 2014-04-02

Wie sieht denn dein Model "Fahrzeuge" aus?

### [#3](https://www.typo3.net/d/117770-kindobjekte-sortieren/3) · oliando · 2014-04-02

Hi!

Hier mein Model:

```php
<?php
namespace TYPO3\Bsemob\Domain\Model;

/***************************************************************
 *  Copyright notice
 *
 *  
 *  All rights reserved
 *
 *  This script is part of the TYPO3 project. The TYPO3 project is
 *  free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  The GNU General Public License can be found at
 *  http://www.gnu.org/copyleft/gpl.html.
 *
 *  This script is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  This copyright notice MUST APPEAR in all copies of the script!
 ***************************************************************/

/**
 *
 *
 * @package bsemob
 * @license http://www.gnu.org/licenses/gpl.html GNU General Public License, version 3 or later
 *
 */
class Fahrzeugdaten extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity {

	/**
	 * fahrzeugmarke
	 *
	 * @var \string
	 * @validate NotEmpty
	 */
	protected $fahrzeugmarke;

	/**
	 * normreichweite
	 *
	 * @var \string
	 * @validate NotEmpty
	 */
	protected $normreichweite;

	/**
	 * bild
	 *
	 * @var \string
	 * @validate NotEmpty
	 */
	protected $bild;

	/**
	 * beschreibung
	 *
	 * @var \string
	 * @validate NotEmpty
	 */
	protected $beschreibung;
	
	/**
	 * beschreibung
	 *
	 * @var \int
	 * @validate NotEmpty
	 */
	protected $kalenderpid;

	/**
	 * buchungsdaten
	 *
	 * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\Bsemob\Domain\Model\Buchungsdaten>
	 */
	protected $buchungsdaten;

	/**
	 * __construct
	 *
	 * @return Fahrzeugdaten
	 */
	public function __construct() {
		//Do not remove the next line: It would break the functionality
		$this->initStorageObjects();
	}

	/**
	 * Initializes all ObjectStorage properties.
	 *
	 * @return void
	 */
	protected function initStorageObjects() {
		/**
		 * Do not modify this method!
		 * It will be rewritten on each save in the extension builder
		 * You may modify the constructor of this class instead
		 */
		$this->buchungsdaten = new \TYPO3\CMS\Extbase\Persistence\ObjectStorage();
	}

	/**
	 * Returns the fahrzeugmarke
	 *
	 * @return \string $fahrzeugmarke
	 */
	public function getFahrzeugmarke() {
		return $this->fahrzeugmarke;
	}

	/**
	 * Sets the fahrzeugmarke
	 *
	 * @param \string $fahrzeugmarke
	 * @return void
	 */
	public function setFahrzeugmarke($fahrzeugmarke) {
		$this->fahrzeugmarke = $fahrzeugmarke;
	}

	/**
	 * Returns the normreichweite
	 *
	 * @return \string $normreichweite
	 */
	public function getNormreichweite() {
		return $this->normreichweite;
	}

	/**
	 * Sets the normreichweite
	 *
	 * @param \string $normreichweite
	 * @return void
	 */
	public function setNormreichweite($normreichweite) {
		$this->normreichweite = $normreichweite;
	}

	/**
	 * Returns the bild
	 *
	 * @return \string $bild
	 */
	public function getBild() {
		return $this->bild;
	}

	/**
	 * Sets the bild
	 *
	 * @param \string $bild
	 * @return void
	 */
	public function setBild($bild) {
		$this->bild = $bild;
	}

	/**
	 * Returns the beschreibung
	 *
	 * @return \string $beschreibung
	 */
	public function getBeschreibung() {
		return $this->beschreibung;
	}

	/**
	 * Sets the beschreibung
	 *
	 * @param \string $beschreibung
	 * @return void
	 */
	public function setBeschreibung($beschreibung) {
		$this->beschreibung = $beschreibung;
	}
	
	/**
	 * Returns the kalenderpid
	 *
	 * @return \string $kalenderpid
	 */
	public function getKalenderpid() {
		return $this->kalenderpid;
	}

	/**
	 * Sets the kalenderpid
	 *
	 * @param \string $kalenderpid
	 * @return void
	 */
	public function setKalenderpid($kalenderpid) {
		$this->kalenderpid = $kalenderpid;
	}

	/**
	 * Adds a Buchungsdaten
	 *
	 * @param \TYPO3\Bsemob\Domain\Model\Buchungsdaten $buchungsdaten
	 * @return void
	 */
	public function addBuchungsdaten(\TYPO3\Bsemob\Domain\Model\Buchungsdaten $buchungsdaten) {
		$this->buchungsdaten->attach($buchungsdaten);
	}

	/**
	 * Removes a Buchungsdaten
	 *
	 * @param \TYPO3\Bsemob\Domain\Model\Buchungsdaten $buchungsdatenToRemove The Buchungsdaten to be removed
	 * @return void
	 */
	public function removeBuchungsdaten(\TYPO3\Bsemob\Domain\Model\Buchungsdaten $buchungsdatenToRemove) {
		$this->buchungsdaten->detach($buchungsdatenToRemove);
	}

	/**
	 * Returns the buchungsdaten
	 *
	 * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\Bsemob\Domain\Model\Buchungsdaten> $buchungsdaten
	 */
	public function getBuchungsdaten() {
		return clone $this->buchungsdaten;
	}

	/**
	 * Sets the buchungsdaten
	 *
	 * @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\Bsemob\Domain\Model\Buchungsdaten> $buchungsdaten
	 * @return void
	 */
	public function setBuchungsdaten(\TYPO3\CMS\Extbase\Persistence\ObjectStorage $buchungsdaten) {
		$this->buchungsdaten = $buchungsdaten;
	}

}
?>
```

### [#4](https://www.typo3.net/d/117770-kindobjekte-sortieren/4) · oliando · 2014-04-03

Hej Jenses!

Hast du mir einen Tipp?

Gruß Oliando

### [#5](https://www.typo3.net/d/117770-kindobjekte-sortieren/5) · jenses · 2014-04-03

Warum lädst du alle Buchungsdaten? Hier fehlt ein @lazy:

```php
	/**
* buchungsdaten
*
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\Bsemob\Domain\Model\Buchungsdaten>
* @lazy
*/
protected $buchungsdaten;
```

Welchen Zweck hat die clone-Anweisung?

```php
	/**
* Returns the buchungsdaten
*
* @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\Bsemob\Domain\Model\Buchungsdaten> $buchungsdaten
*/
public function getBuchungsdaten() {
return clone $this->buchungsdaten;
}
```

Ansonsten kann ich erstmal nichts erkennen, was die Sortierung verhindern sollte.

### [#6](https://www.typo3.net/d/117770-kindobjekte-sortieren/6) · oliando · 2014-04-03

Hi!
Das clone habe ich entfernt. Muss wohl vom extension Builder erstellt worden sein.
Wenn ich dass jetzt so sortieren lasse, dann werden mir die Fahrzeuge sortiert.
Allerdings die Unterobjekte nicht.
Ich will ja eigentlich nur dass die Unterobjekte nach dem Startdatum sortiert werden.
Muss ich da dann anders herangehen?

### [#7](https://www.typo3.net/d/117770-kindobjekte-sortieren/7) · jenses · 2014-04-04

Dann solltest du doch wohl dein setOrderings im Buchungsdaten-Repository setzen und nicht bei den Fahrzeugen, oder?
Wenn ich nun verstehe, was du sagen willst.

### [#8](https://www.typo3.net/d/117770-kindobjekte-sortieren/8) · oliando · 2014-04-14

Hi!

Ich frage meine Daten über das Fahrzeugdaten Repository ab. Weil ich Fahrzeugname etc. benötige. Dabei werden mir ja die Unterobjekte mitgeliefert (Buchungsdaten). Wenn ich das setOrdering im Buchungsdaten-Repository setze, hat das doch keinen Einfluss, da ich die Daten über das Fahrzeugdaten-Repositoy abfrage oder?

---

Quelle: „Kindobjekte sortieren“, typo3.net, https://www.typo3.net/d/117770-kindobjekte-sortieren
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
