[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