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

Mikel lists at con-version.com
Mon Mar 16 22:41:35 CET 2015


Hallo Kai,

danke für Deine Rückmeldung.

Ich hätte noch zwei Anregungen:

1. findByUid dürfte per default eigentlich keine pid abfragen, da die 
uid ja unique ist und somit als identifier reicht.
2. Wenn die set-Methode ein ObjectStorage erwartet, dann kannst Du das 
ObjectStorage zuerst von Deinem Leserbild abholen, das neue Rating 
hinzufügen und dann wieder setzen.
Zum Beispiel:
$newRating = new \MYVENDOR\Leserbilder\Domain\Model\Rating;
$newRating->setIp($_SERVER['REMOTE_ADDR']);
$newRating->setPid(intval($this->settings['folder']));
$leserbild = $this->leserbildRepository->findByUid($uid);
$ratings = $this->leserbild->getRatings();
$ratings->attach($newRating);
$leserbild->setRating($ratings);
$this->leserbildRepository->update($leserbild);

Voraussetzung für dieses Beispiel ist, dass die Methode getRatings im 
Model des Leserbilds existiert und ein ObjectStorage zurückgibt. Zudem 
muss die Methode setRatings ebenfalls ein ObjectStorage erwarten (und 
nicht einen einzelnen Datensatz). Dann kannst Du das neue Rating per 
attach() den vorhandenen, in einem ObjectStorage gespeicherten Ratings 
"anhängen", wieder zurück an das Leserbild übergeben und dies per update 
speichern.

Mikel

Am 16.03.15 um 11:00 schrieb Kai Hechler:
> Hallo Mikel,
> die set-Methode erwartet als Parameter ein Objekt vom Typ 
> "\TYPO3\CMS\Extbase\Persistence\ObjectStorage". Wenn ich das Model 
> übergebe wird ein Fehler geworfen.
>
> Mit der findByUid Methode hast du eigentlich vollkommen recht. Ich 
> habe verschwiegen das ich nicht die magic function nutze, sondern mir 
> meine eigene geschrieben habe damit die pid nicht berücksichtigt wird.
> Auch wenn die beiden Ansätze fehlgeschlagen sind, habe ich zwischen 
> den Zeilen die Lösung gefunden. 
> "$this->leserbildRepository->update($leserbild);" macht den großen 
> Unterschied. Einfach nach der addRating Methode aufrufen und die 
> Zurdnung funktioniert.
> Vielen Dank für deine Hilfe!
>
>
> _______________________________________________
> 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