Hab jetzt nochmal darüber nachgedacht...
Mein Ansatz:
Also um mal die Querys zu bekommen macht es nur sinn das ins ProduktionenRepository zu geben. Ich will ja Produktionen gelistet haben, die nach einem bestimmten Muster gefiltert werden.
public function aktuelleProduktionen($show) {
$query = $this->createQuery();
$query->matching(
$query->logicalAnd(
$query->equals('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('show', $show->getUid()),
$query->equals('abgelaufen', '1')
)
);
return $query->execute();
}
Jetzt muss eigentlich nur noch die Möglichkeit geschaffen werden dies auch in der "Show" abzurufen. Dazu noch im ShowController definiert:
/**
* 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);
}
Es wird leider nichts augegeben, aber vielleicht ab ich auch einfach einen scheiß zusammengeschrieben.
In meinem Kopf funktioniert das so.
In Action Produtkionen sagt Fluid - liste mir alle aktuelleProduktionen.
jetzt greift das System auf das produktionenRepository zu wo auch die "Show-ID" übergeben wird.
Dort sucht die Query erstmals alle Produktionen die mit der UID der Show in Zusammenhang stehen.
Wenn dann noch openend true ist oder abgelaufen NULL, dann gibt er die Zeile auch als Array retour.
Das ist zwar nett gedacht, aber funktionieren tut es ganz offensichtlich nicht, weil sonst hätte ich ja ne Ausgabe. Fehlermeldung kommt so aktuell keine mehr.
glg M.