mardi 23 juin 2015

Datensätze lassen sich mit Extbase nicht abspeichern in Tabellen mit Fremdschlüssel-Beziehung

Liebe Gemeinde

Meine Google-Suche hat nichts ergeben.

Meine Umgebung TYPO3 6.2.13.

Ich habe eine Datenbanktabelle mit einer Fremdschlüssel-Beziehung auf eine andere Tabelle. Wenn ich über die Repository-Klasse einen neuen Datensatz in dieser Tabelle erzeugen will, gibt extbase einen Fehler aus.
Beim Debuggen habe ich herausgefunden, dass extbase zuerst einen Datensatz erzeugen will, der nur ein paar Standardfelder, wie z.B. pid, crdate, tstamp, usw. enthält, und erst in einem zweiten Anlauf dann die Benutzerdaten abspeichert. Das schlägt aber fehl, weil im ersten Anlauf der Fremdschlüssel fehlt.

Konkret:
Tabelle: tx_budget_domain_model_konto enthält einen Fremdschlüssel auf die Tabelle tx_budget_domain_model_konto_type und einen auf die Tabelle tx_budget_domain_model_bank.
Die Fehlermeldung: Cannot add or update a child row: a foreign key constraint fails (`budget`.`tx_budget_domain_model_konto`, CONSTRAINT `tx_budget_domain_model_konto_ibfk_1` FOREIGN KEY (`konto_type`) REFERENCES `tx_budget_domain_model_konto_type` (`uid`))

debug_backtrace: require(ypo3_src-6.2.13\typo3\sysext\cms\tslib\index_ts.php),ypo3_src-6.2.13\index.php#28 // TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->INTincScript#232 // TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->recursivelyReplaceIntPlaceholdersInContent#3638 // TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->INTincScript_process#3671 // TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer->USER#3723 // TYPO3\CMS\Frontend\ContentObject\UserContentObject->render#862 // TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer->callUserFunction#41 // call_user_func_array#6634 // TYPO3\CMS\Extbase\Core\Bootstrap->run# // TYPO3\CMS\Extbase\Core\Bootstrap->handleRequest#184 // TYPO3\CMS\Extbase\Mvc\Web\FrontendRequestHandler->handleRequest#195 // TYPO3\CMS\Extbase\Mvc\Dispatcher->dispatch#56 // TYPO3\CMS\Extbase\Mvc\Controller\ActionController->processRequest#69 // TYPO3\CMS\Extbase\Mvc\Controller\ActionController->callActionMethod#157 // call_user_func_array#286 // HanspeterLutz\Budget\Controller\KontoController->createAction# // HanspeterLutz\Budget\Domain\Repository\KontoRepository->add#101 // HanspeterLutz\Budget\Domain\Repository\CommonRepository->persistAll#51 // TYPO3\CMS\Extbase\Persistence\Generic\PersistenceManager->persistAll#50 // TYPO3\CMS\Extbase\Persistence\Generic\Backend->commit#157 // TYPO3\CMS\Extbase\Persistence\Generic\Backend->persistObjects#306 // TYPO3\CMS\Extbase\Persistence\Generic\Backend->insertObject#331 // TYPO3\CMS\Extbase\Persistence\Generic\Storage\Typo3DbBackend->addRow#649 // TYPO3\CMS\Core\Database\DatabaseConnection->exec_INSERTquery#130 // TYPO3\CMS\Core\Database\DatabaseConnection->debug#218

Weiss jemand, wie man mit extbase Datensätze in Tabellen mit Fremdschlüsselbeziehungen speichert?

LG Hanspeter


Datensätze lassen sich mit Extbase nicht abspeichern in Tabellen mit Fremdschlüssel-Beziehung

Aucun commentaire:

Enregistrer un commentaire