---
title: "Ergebnismenge vom Repository"
url: "https://www.typo3.net/d/104105-ergebnismenge-vom-repository"
source: "typo3.net"
tags: ["Extensions","Extbase","Datenbank","Frage"]
created: "2011-02-25"
last_reply: "2011-02-25"
replies: 0
solved: false
page: 1
pages: 1
lang: "de"
---

# Ergebnismenge vom Repository

Extensions › Extbase · 0 Antworten · gestartet 2011-02-25

## Eröffnungsbeitrag

**sunixzs** · 2011-02-25 · [Beitrag #1](https://www.typo3.net/d/104105-ergebnismenge-vom-repository/1)

Hallo zusammen,

Folgende Sachlage:
Ich habe einen Controller "EntryController". Dort eine Action "listAction". In dieser hole ich Daten aus dem Repository:

```php
public function listAction() {
		$categories = ($this->conf['categories']) ? t3lib_div::trimExplode(",", $this->conf['categories'], true) : Array();
		
		$entries = $this->entryRepository->findRange(
			$this->conf['sorting']['order'], // $order
			$this->conf['sorting']['direction'], // $direction
			$this->conf['period'], // $period
			$categories, // $categories
			$this->conf['archiveAutoTime'], // $archiveAutoTime
			0, // $ts_start
			0 // $ts_end
			);
		
		echo count($entries);
		//print_r($entries->toArray());
		//print_r(get_class_methods(get_class($entries)));
		
		if(count($entries) < 1){
			// Hier will ich darauf reagieren, wenn keine Daten gefunden wurden, aber es sind immer "alle" da (5).
		}
		
		$this->view->assignMultiple(Array(
			'entries' => $entries,
			'conf' => $this->conf,
			));
	}
```

In der Datenbank habe ich insgesamt 5 Einträge.

Nun das Dubiose, was ich nicht verstehe:
Wenn ich meine Repository-Anfrage nicht weiter einschränke, liefert mir das "echo count($entries);" eine 5 (so soll es sein).
Wenn ich meine Repository-Anfrage weiter einschränke (z. B. durch eine Kategorie), liefert mir das "echo count($entries);" immer noch eine 5 (wieso das denn?).

Hier mein vereinfachter View:

```html
<f:layout name="Default" />

<f:section name="main">
	<f:flashMessages />
	<f:count subject='{entries}' /><!-- count liefert immer 5! -->
	<f:if condition="<f:count subject='{entries}' />">
		<f:for each="{entries}" as="entry">
			<h1>{entry.title}</h1>
		</f:for>
		<f:else>
			Keine Daten gefunden. <!-- wird nie ausgeführt, auch wenn nichts auszugeben ist -->
		</f:else>
	</f:if>
</f:section>
```

Die for-Schleife iteriert korrekt über die Anzahl an Einträgen, die ich erwarte. Also bei "alles Anzeigen": 5 und bei Reduzierung auf eine Kategorie weniger als 5.

Kann es daran liegen, dass ich ein SQL-Statement absetzen musste im Query Object Model, weil es MM-Abfragen nicht gibt?

```php
$query = $this->createQuery();
$query->statement($sql);
Return $query->execute();
```

Irgendwo habe ich mal gelesen, dass das Repository die Daten erst liefert, wenn fluid diese braucht. Wird dann erst mein SQL-Statement ausgeführt und vorher (im Controller) einfach alle Daten geholt?

Leider kann ich im Controller und im View nicht abfragen, wie viele Datensätze ich habe. Vllt. übersehe ich auch etwas - ist schon spät/früh.

Vielen Dank für Hinweise.

LG sun

Typo3 4.5.0, PHP 5.3, openSUSE 11.3

Edith sagt:
Das Repository liefert ja ein Object(), welches ich mit count() versuche zu zählen. Vllt. liegt da der Hund begraben.

Wenn ich erst:

```php
$entries->toArray();
```

ausführe, dann sind die Entries zu zählen.

---

Quelle: „Ergebnismenge vom Repository“, typo3.net, https://www.typo3.net/d/104105-ergebnismenge-vom-repository
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
