[TYPO3-german] 1:n Relation über Controller hinzufügen (Typo3 6.2.9)

Mikel lists at con-version.com
Fri Mar 13 13:01:06 CET 2015


Hallo Kai,

hat dein Model des Leserbilds nicht bereits eine Eigenschaft für ein Rating?
Dann könntest Du doch eigentlich einfach ein neues Rating erstellen und 
dies per set-Methode erstellen, oder?

So was wie

$newRating = new \MYVENDOR\Leserbilder\Domain\Model\
$newRating->setIp($_SERVER['REMOTE_ADDR']);
$newRating->setPid(intval($this->settings['folder']));

$leserbild = $this->leserbildRepository->findByUid($uid);
$leserbild->setRating($newRating);
$this->leserbildRepository->update($leserbild);
$this->persistanceManager->persistAll();

War nur ein spontaner Gedanke. Alles ungeprüft.

Was mir noch auffällt: Du holst einen Datensatz per findByUid und führst 
anschließend darauf ein getFirst aus. findByUid gibt meines Wissens 
schon direkt den entsprechenden Datensatz und kein QueryResult zurück. 
Könnte da auch der Fehler liegen?

Mikel



Am 13.03.15 um 12:03 schrieb Kai Hechler:
> Hallo,
> ich will zu einem Datensatz eine Bewertung als 1:n Relation 
> hinzufügen. Die Bewertung wird erstellt und in die DB eingetragen nur 
> die zuordnung zum Datensatz funktioniert einfach nicht. Mein Code 
> sieht wie folgt aus:
>
>     /**
>      * action rate
>      *
>      * @return void
>      */
>     public function rateAction() {
>
>         $newRating = new \MYVENDOR\Leserbilder\Domain\Model\Rating;
>         $newRating->setIp($_SERVER['REMOTE_ADDR']);
> $newRating->setPid(intval($this->settings['folder']));
>
>         $objectManager = 
> \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('\TYPO3\CMS\Extbase\Object\ObjectManager');
>
>         $ratingRepository = 
> $objectManager->get('\MYVENDOR\Leserbilder\Domain\Repository\RatingRepository');
>         $ratingRepository->add($newRating);
>
>         $leserbildResult = 
> $this->leserbildRepository->findByUid(intval($_POST['uid']));
>         $leserbild = $leserbildResult->getFirst();
>         $leserbild->addRating($newRating);
>
> $objectManager->get('TYPO3\CMS\Extbase\Persistence\PersistenceManagerInterface')->persistAll();
>     }
>
> Das Problem ist die Zeile " $leserbild->addRating($newRating); ". Es 
> wird kein Fehler geworfen, allerdings ist dem Leserbild Datensatz kein 
> Rating zugeordnet.
> _______________________________________________
> 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