[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