---
title: "Repository: Injection funktioniert, Ergebnis aber empty"
url: "https://www.typo3.net/d/128212-repository-injection-funktioniert-ergebnis-aber-empty"
source: "typo3.net"
tags: ["Extensions","Entwicklung","Extbase","Frage","TYPO3 9"]
created: "2020-07-08"
last_reply: "2020-07-08"
replies: 1
solved: false
page: 1
pages: 1
lang: "de"
---

# Repository: Injection funktioniert, Ergebnis aber empty

Extensions › Entwicklung · 1 Antwort · gestartet 2020-07-08

## Eröffnungsbeitrag

**perthe** · 2020-07-08 · [Beitrag #1](https://www.typo3.net/d/128212-repository-injection-funktioniert-ergebnis-aber-empty/1)

Hab da ein kurioses Problem. Ich habe zwei Extensions. In der zweite injected der Controller eine Klasse aus der ersten Injection. Das macht er auch super. Aber nur, solange ich am Repository findByUid() aufrufe. Bei findAll() oder findByProperty() liefert er ein leeres Ergebnis zurück. das ist irgendwie ein Verhalten, das ich nicht erwarte. Möglicherweise fehlt mir eine Einstellung oder ich habe irgendetwas falsch gemacht.

Die erste Extension hat ein typoScript:

```typoscript
config.tx_extbase {
  persistence {
    classes {
      MyVendor\MyExtA\Domain\Model\Item {
        mapping {
          tableName = tx_myexta_domain_model_item
          recordType = \MyVendor\MyExtA\Domain\Model\Item
        }
      }
    }
  }
}
```

Die Controller-Injection:

```php
/**
* itemRepository
*
* @var itemRepository
*/
protected $itemRepository; 
	
/**
* Inject the ItemRepository
*
* @param MyVendor\MyExtA\Domain\Repository\ItemRepository $itemRepository
*/
public function injectItemRepository(ItemRepository $itemRepository)
{
  $this->itemRepository= $itemRepository;
}
```

Der Call:
funktioniert:

```php
$items = $this->itemRepository->findByUid(6);
$this->view->assign('items', $items);
```

funktioniert nicht:

```php
$items = $this->itemRepository->findAll();
$this->view->assign('items', $items);
```

```php
$items = $this->itemRepository->findByName('itemX');
$this->view->assign('items', $items);
```

## Antworten

### [#2](https://www.typo3.net/d/128212-repository-injection-funktioniert-ergebnis-aber-empty/2) · Forumsbote · 2026-11-07

🤖 **KI-Antwort des Forumsboten** · automatisch erstellt und von einer zweiten KI gegengeprüft, ohne Gewähr.

Das liegt an der Storage-Page. `findByUid()` ignoriert die storagePid und sucht auf allen Seiten. `findAll()` und `findBy...()` lesen dagegen nur aus den Seiten in `persistence.storagePid`. Dabei zählt die Konfiguration des Plugins, das gerade läuft, also die deiner **zweiten** Extension. Dort ist die storagePid vermutlich nicht oder anders gesetzt als der Ordner, in dem die Items liegen. (`findByUid()` ignoriert außerdem die Sprache. Liegen die Items in einer anderen Sprache als die aktuelle Seite, wäre das die zweite mögliche Ursache.)

Variante 1: storagePid für das Plugin der zweiten Extension setzen (UID des Ordners mit den Items):

```typoscript
plugin.tx_myextb {
  persistence {
    storagePid = 123
  }
}
```

Variante 2: Das Repository soll die Storage-Page grundsätzlich ignorieren (TYPO3 9):

```php
use TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings;

class ItemRepository extends \TYPO3\CMS\Extbase\Persistence\Repository
{
    public function initializeObject()
    {
        $querySettings = $this->objectManager->get(Typo3QuerySettings::class);
        $querySettings->setRespectStoragePage(false);
        $this->setDefaultQuerySettings($querySettings);
    }
}
```

Das gilt dann für alle Plugins, die das Repository nutzen. Wenn nur die zweite Extension betroffen sein soll, ist Variante 1 sauberer.

Nebenbei: `recordType` brauchst du nur bei Single Table Inheritance (mehrere Model-Klassen in einer Tabelle mit Type-Feld). Für eine normale Tabelle kannst du die Zeile weglassen.

In aktuellen Versionen (TYPO3 12–14) gibt es im Repository kein `$this->objectManager` mehr. Dort holst du die Settings mit `GeneralUtility::makeInstance(Typo3QuerySettings::class)` oder per Dependency Injection.

---

Quelle: „Repository: Injection funktioniert, Ergebnis aber empty“, typo3.net, https://www.typo3.net/d/128212-repository-injection-funktioniert-ergebnis-aber-empty
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
