Hallo erstmal.
Danke für die Antwort.
Also ich verstehe natürlich, dass man sicher über Fluid hier auch ne Lösung basteln kann.
Das macht auch voll Sinn, aber ist in dem Fall nicht perfekt zu realisieren.
Die Struktur ist nochmal wie folgt:
Show (mit vielen Daten)
Produktionen (der Show mit vielen Daten)
Ich kann mir mittlerweile abgelaufene Produktionen anzeigen lassen, und auch aktuelle Produktionen kann ich mir über conditions per Fluid anzeigen lassen. Aber es wäre praktischer dazu eine Abfrage vorweg zu haben nach der per <f:for each... fragen kann.
Grund ist, dass die Überschriften zum jeweiligen Thema zB auch verschwinden soll. Damit brauch ich aber ein Array, welches auch ne klare NULL retour geben kann, wenn zB keine archivierte Vorstellung verfügbar ist.
Ob die Produktion nun aktuell oder archiviert ist ergibt sich rein aus der Tatsache, dass eine Produktion sowohl ein Start- wie auch ein Enddatum hat. Im Model gibt es hier ein boolean mit dem Namen abgelaufen, dass kontrolliert ob das Enddatum bereits in der Vergangenheit liegt. Das funktioniert alles. Es gibt auch Produktionen die zB noch kein Enddatum besitzen und dadurch "openend" sind, was direkt im Datensatz deklariert wird.
Daher kommen die Query(s).
Aktuell kann ich nur die Datensätze nach Richtlinien über Fluid ausgeben, was theoretisch auch funktioniert, allerdings hab ich keine Möglichkeit nen Text festzulegen, sollte mal keine archivierte Produktion vorhanden sein, oder eben vielleicht mal komplett die Überschrift wegnehmen, wenn gar keine Produktion in der jeweiligen Kategorie verfügbar ist.
Deshalb das Ganze.
Aktuell hab ich, nochmals zusammenfassend, einerseits im ProduktionenRepository Querys hinzugefügt
public function aktuelleProduktionen($show) {
$query = $this->createQuery();
$query->matching(
$query->logicalAnd(
$query->equals('tx_show', $show->getUid()),
$query->logicalOr(
$query->equals('openend', '1'),
$query->equals('abgelaufen', '0')
)
)
);
return $query->execute();
}
public function archivierteProduktionen($show) {
$query = $this->createQuery();
$query->matching(
$query->logicalAnd(
$query->equals('tx_show', $show->getUid()),
$query->equals('abgelaufen', '1')
)
);
return $query->execute();
}
Und andererseits das im ShowController für die Ausgabe deklariert.
/**
* action produktionen
*
* @param \Musicalplanet\MpDatenbank\Domain\Model\Show $show
* @return void
*/
public function produktionenAction(\Musicalplanet\MpDatenbank\Domain\Model\Show $show) {
$aktuelleProduktionen = $this->produktionenRepository->aktuelleProduktionen($show);
$archivierteProduktionen = $this->produktionenRepository->archivierteProduktionen($show);
$this->view->assign('aktuelleProduktionen', $aktuelleProduktionen);
$this->view->assign('archivierteProduktionen', $archivierteProduktionen);
$this->view->assign('show', $show);
}
Hier stimmt aber scheinbar etwas nicht, weil bei ner Ausgabe über Fluid per <f:for each="{show.aktuelleProduktionen}" as="produktion"> nichts angezeigt wird.
Fehlermeldung bekomme ich nun keine mehr!
LG M.