07. 03. 2020, 09:15

Hallo,
ich habe eine Show View die mir die Properties eines Datensatzes anzeigt. Dort soll eine Kommentarfunktion mit Listenansicht der Kommentare angezeigt werden. Beim speichern der Kommentare wird der Datensatz 3x in der DB gespeichert. Kann mir nicht erklären warum das so ist.

<f:section name="content">

<f:flashMessages />
<f:render partial="FormErrors" />
<f:render partial="Fahrzeugstammdaten/Properties" arguments="{_all}" />

<f:for each="{cgkommentares}" as="cgkommentare">
<h3 class="h3balkenueberschrift mt-60">Nachricht von: {cgkommentare.userid} vom {cgkommentare.datum->f:format.date(format: 'd.m.Y H:i')}</h3>
<div class="col-md-12 col-xs-12 kommentare"> <f:format.html>{cgkommentare.kommentar}</f:format.html> </div>
</f:for>

<h3 class="h3balkenueberschrift">Schreiben Sie uns eine Nachricht:</h3>
<f:form action="kommentar" enctype="multipart/form-data" name="newCgkommentare" object="{newCgkommentare}" arguments="{fahrzeugstammdaten:fahrzeugstammdaten}">
<f:form.hidden property="userid" value="{first_name} {last_name}" />
<f:form.hidden property="datum" value="{datenow}" />

<f:render partial="Cgkommentare/FormFields" />
<f:form.submit value="Senden" class="submit_btn btn btn-mod btn-medium btn-round" />
</f:form>

</f:section>

Die Controller Action sieht wie folgt aus:

/**
* action kommentar
*
* @param \aj\Ajticket\Domain\Model\Cgkommentare $newCgkommentare
* @return void
*/
public function kommentarAction(\Aj\Ajticket\Domain\Model\Fahrzeugstammdaten $fahrzeugstammdaten,\Aj\Ajticket\Domain\Model\Cgkommentare $newCgkommentare=NULL)
{

$this->cgkommentareRepository->add($newCgkommentare);
// \TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($newCgkommentare);
$this->redirect('show', 'Fahrzeugstammdaten', NULL, ['fahrzeugstammdaten' => $fahrzeugstammdaten]);
}

/**
* initialize kommentar action
*
* @param void
*/
public function initializeKommentarAction()
{

// Datum konvertieren
$propertyMappingConfiguration = $this->arguments->getArgument('newCgkommentare')->getPropertyMappingConfiguration();
$propertyMappingConfiguration->forProperty('*')->setTypeConverterOption('TYPO3\\CMS\\Extbase\\Property\\TypeConverter\\DateTimeConverter', \TYPO3\CMS\Extbase\Property\TypeConverter\DateTimeConverter::CONFIGURATION_DATE_FORMAT, 'Y-m-d');
$propertyMappingConfiguration->forProperty('*')->allowAllProperties();
$propertyMappingConfiguration->forProperty('*')->allowCreationForSubProperty('*');
$propertyMappingConfiguration->forProperty('*')->forProperty('*')->allowAllProperties();
$newCgkommentare=$this->request->getArgument('newCgkommentare');

}

Wenn ich mir $newCgkommentare Debuge vor dem redirect wird der Datensatz schon 2x angezeigt.

Wäre toll ein Ansatz von jemandem zu bekommen was ich falsch mache.

Danke schon mal im Voraus...