[TYPO3-german] if ($object) ist immer TRUE
Jorinde Milde
jorinde.milde at 599media.de
Mon Apr 27 08:22:17 CEST 2015
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.milde at 599media.de
Geschäftsführer: Jens Engelmann
Sitz der Gesellschaft: Freiberg
HR: AG Chemnitz HRB 24695
-----Ursprüngliche Nachricht-----
Von: typo3-german-bounces at lists.typo3.org [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von Ralf-Rene Schröder
Gesendet: Montag, 27. April 2015 02:28
An: typo3-german at 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 at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
More information about the TYPO3-german
mailing list