[TYPO3-german] if ($object) ist immer TRUE
Ralf-Rene Schröder
ralf.rene at online.de
Mon Apr 27 02:28:08 CEST 2015
hallo...
ich habe in einer create action zwei Probleme...
vielleicht sieht ja jemand meinen Fehler ???
// meine Fragen und Probleme sind im Kommentar geschrieben
/**
* action create
* @param \Vendor\Ext\Domain\Model\LiveDialog $newLiveDialog
* @return void
*/
public function createAction(\Vendor\Ext\Domain\Model\LiveDialog
$newLiveDialog) {
$twin = $newLiveDialog->getTwin();
$ptwin = $newLiveDialog->getPartnertwin();
$existingLiveDialog =
$this->liveDialogRepository->findExistingLiveDialog($twin, $ptwin);
// 1.) das folgende wird trotz if IMMER augeführt ??? warum ???
// 2.) wenn ich die 4 durch das gewollte $existingLiveDialog ersetze
// bekomme ich den Fehler dass es ein Object und kein String ist ???
// ich will, wenn der Dialog schon existiert ihn nur direkt anzeigen,
// andernfalls ihn und seinen PartnerDialog (vertauschte Werte) anlegen.
if ($existingLiveDialog) {
$this->redirect('show','LiveDialog',Null,array('liveDialog' => 4));
}
$this->liveDialogRepository->add($newLiveDialog);
// hier die Frage ob es keine einfachere Methode gibt
// einen kreuzweise 1:1 verknüpften Datensatz zu erstellen ???
// das hier funktioniert zwar, aber irgendwie finde ich es nicht schön.
$this->persistenceManager =
\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance("TYPO3\\CMS\\Extbase\\Persistence\\Generic\\PersistenceManager");
$this->persistenceManager->persistAll();
$newLivePartnerDialog = new \imF\Nr\Domain\Model\LiveDialog();
$newLivePartnerDialog->setTwin($ptwin);
$newLivePartnerDialog->setPartnertwin($twin);
$newLivePartnerDialog->setPartnerDialog($newLiveDialog);
$this->liveDialogRepository->add($newLivePartnerDialog);
$this->persistenceManager->persistAll();
$newLiveDialog->setPartnerDialog($newLivePartnerDialog);
$this->liveDialogRepository->update($newLiveDialog);
$this->persistenceManager->persistAll();
$this->redirect(...);
}
_____________________________________________________________________
hier noch das genutzte Repository, liefert kein oder genau ein Ergebnis:
/**
*
* @return array|\TYPO3\CMS\Extbase\Persistence\QueryResultInterface
*/
public function findExistingLiveDialog($twin, $ptwin) {
$query = $this->createQuery();
$query->matching(
$query->logicalAnd(
$query->equals('twin', $twin),
$query->equals('partnertwin', $ptwin)
)
);
return $query->execute();
}
--
image[FORMAT] - Ralf-René Schröder
http://www.image-format.eu ... Wir geben Ihrem Image das richtige Format
More information about the TYPO3-german
mailing list