hallo,
bin ganz neu in Extbase.
Ich suche einen Weg in einer Controller Action ( hier die ListAction) eine bestimmte Variable, die aus dem "$videos = $this->videoRepository->findAll();" in dem Array landet, zu prüfen, ob diese leer oder gefüllt ist. Wenn diese leer ist, möchte ich gerne diese Variable über den Controller mittels eigenem Code füllen, so dass diese "geänderte"-Variable dann in meinem template mit dem geändertem Inhalt ausgegeben werden kann.
Ich stehe da etwas auf dem Schlauch. Über Hilfe würde ich mich freuen.
Grüße
Sebastian
Hi,
Ich habe es letztens so gelöst. Da ich recht neu bin in dem Thema weiß ich nicht ob das "Best Practice" ist, bin daher auch für neue Vorschläge zu haben 🙂
public function listAction{
$projects = $this->projectRepository->findAll();
foreach ($projects as $key => $project) {
$projectTitle = $project->getTitle();
// hier Anpasusng der Variable
....
// hier jetzt der wieder zurückschreiben Teil
$project->setTitle( $projectTitle );
}
}
Dein "Video" ist ja mit Extbase ein Object und dieses hat für gewöhnlich getter und setter Methoden für alle Eigenschaften. Die Methoden kannst du alle in deinem Model/Video.php nachsehen
Ich verstehe nicht völlig wozu das gut sein soll. Entweder es steht was drin oder nicht. Wenn es eine Art "default" geben soll, dann würde ich den entweder im getter direkt zurück geben wenn die Property leer ist oder im View mit einer Fluid condition arbeiten. Ich finde die Entities zu ändern etwas unsauber (außer man speichert es dann auch so).
Danke Dir, probiere ich mal aus...
das mit dem getter im Model schaue ich mir auch nochmnal an, da scheint es ja am besten aufgehoben zu sein...
kitsunet schrieb
Ich verstehe nicht völlig wozu das gut sein soll..
Info: Ich habe eine extension bei der ich für ein VideoProjekt (Vimeo-videos) u.a. ein Vorschaubild hinterlegen kann. Hier möchte ich, wenn das Projekt kein Vorschaubild enthält das vorschaubild direkt mittels der VimeoVideoID aus der Vimeo-API ziehen... das geht aber nicht im Template, sondern muss am besten driekt im Controller gesetzt sein.
Naja aber beim anlegen könnte man das doch machen (oder eben im getter).