Zum Inhalt springen

Wert aus Repository-Objekt im Controller auslesen?

Erstellt am 17. September 2013 · 2 Antworten · letzte Antwort am 18. September 2013

Tags: Frage

Axel_1971 ·

Vielleicht kann mir jemand auf die Sprünge helfen ;-)

Ich habe einen Datensatz ("Spiele") mit einer mm_relation zu "Verlagen". Habe auch eine entsprechende Methode getVerlag(). Allerdings bekomme ich hier ja keinen einzelnen Wert zurück, sondern ein ganzes Objekt und ich brauche den Titel des Verlags eben auch schon in meiner Extension im Controller. Kann mir jemand sagen, wie ich an diesen Wert rankomme? Also ganz unten ["titel"]=> "Der Verlag".

object(TYPO3\CMS\Extbase\Persistence\ObjectStorage)#433 (6) {
  ["warning":"TYPO3\CMS\Extbase\Persistence\ObjectStorage":private]=>
  string(228) "You should never see this warning. If you do, you probably used PHP array functions like current() on the TYPO3\CMS\Extbase\Persistence\ObjectStorage. To retrieve the first result, you can use the rewind() and current() methods."
  ["storage":protected]=>
  array(1) {
    ["00000000191f62980000000033cc3d5f"]=>
    array(2) {
      ["obj"]=>
      object(TYPO3\Spielregeln\Domain\Model\Verlag)#439 (20) {
        ["titel"]=> string(12) "Der Verlag"
Unbekannter Benutzer · · Beste Antwort

Also um deine Frage kurz zu beantworten:

$spiel->getVerlag()->rewind();
$spiel->getVerlag()->current()->getTitle();

Damit solltest Du den Titel bekommen, ABER:

Du hast eine MM Beziehung zu den Verlagen, d.h. es könnten mehrere Verlage für ein Spiel sein (macht das Sinn?), das Code <snippet gibt dir aber nur den Titel vom ersten, erscheint mir irgendwie nicht ideal... Entweder du musst eine foreach Schleife machen und dir alle Titel holen oder nochmal drüber nachdenken ob MM wirklich richtig ist.

Wenn MM richtig ist, dann sollte der getter (und setter) anders heißen -> getVerlage()
Deutsch in Code ist generell naja aber ok...
Verlag::titel finde ich irgendwie auch nicht ideal, ich meine ein Buch hat einen Titel (bei einem Spiel würde ich da schon genauer nachdenken) aber ein Verlag hat einen Namen keinen Titel.

So genug gemeckert, dein Problem sollte sich so aber lösen lassen 😉