Hallo Ralf-Rene, ich bilde mir ein, dass ein Repository immer ein Objekt "QueryResult" zurück liefert. Dieses müsste dann darauf getestet werden, ob es leer ist. Zum Beispiel:
if ($existingLiveDialog->count() !== 0) { ... Außerdem beinhaltet ein QueryResult Objekt und nicht nur die IDs zu diesen Objekten. Um also die ID irgendwohin zu schreiben, musst du dir diese auch erst holen: $existingLiveDialog->getUid(); Bzw. wenn $existingLiveDialog noch ein QueryResult ist: $existingLiveDialog->getFirst()->getUid(); Mit freundlichen Grüßen Jorinde Milde M.Sc. Jorinde Milde Web Development 599media GmbH Platz der Oktoberopfer 5 09599 Freiberg Tel.: 03731 / 41 939 - 42 Fax: 03731 / 41 939 - 59 http://www.599media.de jorinde.mi...@599media.de Geschäftsführer: Jens Engelmann Sitz der Gesellschaft: Freiberg HR: AG Chemnitz HRB 24695 -----Ursprüngliche Nachricht----- Von: typo3-german-boun...@lists.typo3.org [mailto:typo3-german-boun...@lists.typo3.org] Im Auftrag von Ralf-Rene Schröder Gesendet: Montag, 27. April 2015 02:28 An: typo3-german@lists.typo3.org Betreff: [TYPO3-german] if ($object) ist immer TRUE 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 _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german