Standard Queries in Extbase Repositories

Für jede Tabelle die man über Extbase ansprechen will muss in der Regel ein entsprechendes Repository hinterlegt werden. In einer minimalen Repository Class extenden wir lediglich die TYPO3 Core Repository Class:

<php
namespace Vendor\MyExtension\Domain\Repository;

class MyTableRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {

}


Im Controller muss dann noch das Repository injected werden:

/**
 * myTableRepository
 *
 * @var \Vendor\MyExtension\Domain\Repository\MyTableRepository
 * @inject
 */
    protected $myTableRepository;

Die pageIds in der ihr die Daten speichert wird im Extension Setup definiert. Diese Konstante wird automatisch in den Abfragen berücksichtigt (Ausnahme: findByUid):

plugin.tx_myplugin.persistence.storagePid = 123,124

Standard Repository Funktionen

Nachdem wir die Repository Class ergänzt und im Controller injected haben, stehen folgende Funktionen zur Verfügung:

Daten speichern / löschen

$this->myTableRepository -> add($object);
$this->myTableRepository -> update($object);
$this->myTableRepository -> remove($object);
$this->myTableRepository -> removeAll();

Dabei muss das Object natürlich vom Typ eures Repositories sein.

 

Daten suchen

$result = $this->myTableRepository -> findAll();
$result = $this->myTableRepository -> findByUid();
$result = $this->myTableRepository -> findByMyProperty($value);
$result = $this->myTableRepository -> findOneByMyProperty($value);

Die Funktionen findByUid und findOneBy liefern direkt des Objekt zurück.

 

Datensätze zählen

$count = $this->myTableRepository -> countAll();
$count = $this->myTableRepository -> countByMyProperty($value);

 

In allen Funktionen werden nur die "sichtbaren" Datensätze zurück geliefert.

Wer in Backendmodulen versteckte - "hidden" Datensätze ausgeben will kommt mit diesen Abfragen nicht weit. Auch nicht wer im Backend übersetzte Datensätze anzeigen will. Das sollte man wissen doch dazu später mehr ...

Weitere Artikel zu diesem Thema:

Empfehlenswerte Lektüre:

TYPO3 Extbase: Moderne Extension-Entwicklung für TYPO3

Ein nahezu perfektes Buch für TYPO3 Extensionentwickler die mit Extbase und Fluid beginnen, aber auch erfahrene Entwickler finden noch Anregungen um ihre eigene Arbeit ständig zu verbessern. Sehr ausführlich, kurzweilig, kein Lesestoff für die Couch sondern eher ein Mitmachbuch das Spaß und Unterstützung bei der eigenen Extensionentwicklung bietet.

Kommentare

keine Kommentare vorhanden


Kommentar verfassen

Die Email Adresse wird nicht veröffentlicht.