SetWhatEver(42); ist nur ein Beispiel, weil du ja in PHP noch irgendwas an den Models verändern wolltest bevor du sie dem View übergibst.
Die Anzahl der Datensätze bekommst du mit der Methode QueryResult::count() (QueryResults sind die Objekte die die Repositories zurück geben)
also zum Beispiel, $this->repository->findAll()->count()
Vorsicht, das "count()" funktioniert nicht mehr, wenn du per statement() ein eigenes SQL Query schreibst! Dann wird dir count() immer die Anzahl aller Datensätze zurück geben!
Selber SQL zu schreiben ist in Extbase immer eine schlechte Idee (auch wenn es sich nicht immer vermeiden lässt)
generell gibt es für jede Property deines Models die Methoden FindByProperty() und FindOneByProperty() im Repository. Wobei "Property" der Property name ist, also zum Beispiel findByTitle('test') oder findOneByName('foo'). Ersteres gibt ein QueryResult zurück, das alle Models mit dem Titel "test" beinhalten, das zweite Beispiel gibt dir direkt ein Model mit dem Namen 'foo' zurück. (wenn es mehrere mit dem Namen gibt, dann das erste davon)
Brauchst du mehr als ein Kriterium (oder was anderes wie eine "ist gleich" Beziehung) musst du eine eigene Methode im Repository schreiben.
hier mal ein kleines Beispiel:
public function findNonPublicByTest(\TYPO3\MyExt\Domain\Model\Test $test) {
$query = $this->createQuery();
$condition1 = $query->equals('public', false);
$condition2 = $query->equals('test', $test);
$condition = $query->logicalAnd($condition1, $condition2);
$query->matching($condition);
$query->setOrderings(array('titel' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING));
return $query->execute();
}
Hier kriege ich eine Liste aller Datensätze zurück die nicht public sind und in der Property "Test" mit dem übergebenen Objekt übereinstimmen.
Ist etwas umständlich gemacht, aber wenn man sich dran gewöhnt hat funktioniert es eigentlich ganz gut 😉
Wenn es immer noch nicht klar ist, Zeig mir einfach mal wie deine aktuellen Models aussehen, dann tippe ich dir schnell Beispiele anhand deiner eigenen Models zusammen.