05. 08. 2019, 16:15

Hallo zusammen,

ich bin gerade etwas am verzweifeln. Ich habe eine Extension geschrieben bei der im Frontend die Daten verwaltet werden, bei der es auch möglich sein soll, ein leeres Datumsfeld zu speichern. Allerdings erhalte ich dann folgende Fehlermeldung: "Argument 1 passed to BLA\Bla\Domain\Model\Bla::setVisibleStart() must be an instance of DateTime, null given". Das Problem ist hierbei, dass es nur bei einem Update die Probleme verursacht. Lege ich einen neuen Datensatz an, hab ich das Problem nicht.

Mein Model:
[code]/**
* visibleStart
*
* @var \DateTime
*/
protected $visibleStart = null;

/**
* Returns the visibleStart
*
* @return \DateTime $visibleStart
*/
public function getVisibleStart() {
return $this->visibleStart;
}

/**
* Sets the visibleStart
*
* @param \DateTime $visibleStart
* @return void
*/
public function setVisibleStart(\DateTime $visibleStart) {
$this->visibleStart = $visibleStart;
}
[/code]

Im Controller:
[code]/**
* Initialize createAction
*/
public function initializeUpdateAction(){
$dateFormat = "d.m.Y";
// Convert Date to Timestamp
if(isset($this->arguments['newDate']) && $this->arguments['newDate']){
$this->arguments['newDate']
->getPropertyMappingConfiguration()
->forProperty('visibleStart')
->setTypeConverterOption('TYPO3\\CMS\\Extbase\\Property\\TypeConverter\\DateTimeConverter',
\TYPO3\CMS\Extbase\Property\TypeConverter\DateTimeConverter::CONFIGURATION_DATE_FORMAT, $dateFormat);
}
}
[/code]

im Template:
[code]<div class="form-group">
<label for="visibleStart" class="col-sm-2 text-right">
<f:translate key="date.onlineStart"/>
</label>
<div class="col-sm-10">
<div class="input-group">
<f:form.textfield property="visibleStart" value="{date.visibleStart -> f:format.date(format: 'd.m.Y')}" class="form-control datepicker1"/>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
</div>
[/code]