[Frage] Wert aus Repository-Objekt im Controller auslesen? [Gelöst]

  • Axel_1971 Axel_1971
    TYPO3-Anwärter
    0 x
    6 Beiträge
    0 Hilfreiche Beiträge
    17. 09. 2013, 22:15

    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".

    1. object(TYPO3\CMS\Extbase\Persistence\ObjectStorage)#433 (6) {
    2. ["warning":"TYPO3\CMS\Extbase\Persistence\ObjectStorage":private]=>
    3. 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."
    4. ["storage":protected]=>
    5. array(1) {
    6. ["00000000191f62980000000033cc3d5f"]=>
    7. array(2) {
    8. ["obj"]=>
    9. object(TYPO3\Spielregeln\Domain\Model\Verlag)#439 (20) {
    10. ["titel"]=> string(12) "Der Verlag"

  • kitsunet kitsunet
    Flash Gordon
    0 x
    2559 Beiträge
    27 Hilfreiche Beiträge
    18. 09. 2013, 11:15 - Lösung

    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 ;)

    config.baseURL = http://www.kitsunet.com/
    TYPO3 Flow und Neos Community Contact
    Release Manager TYPO3 Neos 1.1
    Ich habe Probleme mit den PMs hier, also schreibt mir bitte eine Mail oder über Twitter!


  • 1
  • kitsunet kitsunet
    Flash Gordon
    0 x
    2559 Beiträge
    27 Hilfreiche Beiträge
    18. 09. 2013, 11:15

    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 ;)

    config.baseURL = http://www.kitsunet.com/
    TYPO3 Flow und Neos Community Contact
    Release Manager TYPO3 Neos 1.1
    Ich habe Probleme mit den PMs hier, also schreibt mir bitte eine Mail oder über Twitter!

  • Axel_1971 Axel_1971
    TYPO3-Anwärter
    0 x
    6 Beiträge
    0 Hilfreiche Beiträge
    18. 09. 2013, 17:25

    Tausend Dank, kitsunet :-)

    Die anderen Dinge werde im im nächsten Projekt beherzigen ;-)

  • 1