$model->save() ohne Datenbankänderung
Ich habe gerade das folgende skurile Verhalten und komme nicht weiter:
Kurzfassung: In einem Controller, der eine Route verarbeitet wird ein $model->save() ausgeführt. Der Wert wird im Model als geändert angezeigt aber nicht in der Datenbank gespeichert.
Details:
Meine Methode:
PHP-Code:
#[Route('/exampleroute', name: 'exampleroute_name', defaults: ['_scope' => 'backend', '_token_check' => false])]
public function confirmDetailmember(Request $request, Connection $connection): Response
{
$detailMemberId = $request->request->get('detailMemberId');
$returnUrl = $request->request->get('returnUrl');
if ($detailMemberId && $returnUrl) {
try {
$detailMember = \App\Model\ProjectDetailMemberModel::findByPk($detailMemberId);
if ($detailMember) {
$detailMember->status = 'confirmed';
$detailMember->save();
}
Message::addConfirmation('Model wurde gespeichert: ' . $detailMember->status);
return new RedirectResponse($returnUrl);
} catch (\Exception $e) {
Message::addError('Das Speichern war nicht erfolgreich: ' . $e->getMessage());
return new RedirectResponse($returnUrl);
}
} else {
Message::addError('Ein Fehler ist aufgetreten.');
return new RedirectResponse($this->generateUrl('fallback_route_name'));
}
}
Die Route wird erfolgreich aufgerufen. Der erfolgreiche Redirect wird durchgeführt und auch die Confirmation wird angezeigt. Der Wert in der DB wird jedoch nicht geändert. Was könnte das Verhalten verursachen?
Ausgeführt wird der Code im Debug-Modus, update und install sind zusätzlich ausgeführt.
Hat jemand eine Idee?