[Frage] Extbase & Fluid: anhand einer UID im Fluid per Extbase einen Wert aus einer Tabelle holen [Gelöst] TYPO3-Version: 6.1.7

  • Alissa Alissa
    T3PO
    0 x
    14 Beiträge
    0 Hilfreiche Beiträge
    03. 03. 2014, 16:37

    Hallo,

    ich habe mit dem extension builder eine extension "geschrieben" (eher zusammengeklickt) die mir ein Blog-Beispiel macht. ich kann einen blognamen, einen post, kommentare und tags setzen. zusätzlich habe ich ein mapping auf eine von mir erstellte tabelle gesetzt aus der ich einen oder mehrere autoren wählen kann.

    im backend funktionier auch alles super, nur im frontend werden dann nur die ids der autoren angezeigt.
    das beispiel anhand dess ich das ganze gemacht habe ist:
    http://de.slideshare.net/t3node/t3con11-lazy-development-using-the-extension-builder

    nun bekomme ich im frontend wirklich alle möglichen daten, aber keine namen zu den ausgewählten autoren..

    habe folgende controller:
    BlogController.php
    AuthorrelationController.php

    und natürlich die zugehörigen models und repositories (wobei die repos leer sind bis auf die extends zeile)

    im frontend erhalte ich alle daten durch den blogcontroller den ich mit {blog} debuggen (<f:debug>{_all}</f:debug>) kann. da sehe ich auch nahezu alles was ich brauche, bis auf die autorennamen.

    mit

    1. <f:for each="{blog.authorRelation}" as="child" key="count">
    2. <f:render partial="Authorrelation/Properties" arguments="{authorrelation:authorrelation}" />
    3. <AutorenNamen:publisher object="{child.uid}" /><br />
    4. </f:for>

    bekomme ich dann 1,3,1 als ausgabe, wie kriege ich jetzt die zugehörigen namen da rein?

    hoffe ihr könnt mir helfen

    liebe grüße
    Alissa

    ps: noch ein bild vom debugger:
    [img]http://s7.directupload.net/images/140303/sy2m7oiz.png[/img]

    Anhänge (1)
    publisher.png image/png 0,00 B 124 heruntergeladen
  • Schweriner Schwerine...
    Jedi-Ratsmitglied
    0 x
    554 Beiträge
    60 Hilfreiche Beiträge
    04. 03. 2014, 09:14 - Lösung

    AutorRelationController finde ich macht für eine Relation wenig sind. Zumindest finde ich die Bezeichnung verwirrend, es handelt sich um ein Autoren, die einem Blog zugeordnet sind. Wie hast Du die Relation denn im Extension Builder gemacht? In dem Artikel Model fehlen ObjectStorages, was die Autoren sein sollten. Ich würde sagen Du machst die Relation nochmal ordentlich im Extension Builder und schaust Dir dann nochmal die Models an.


  • 1
  • kitsunet kitsunet
    Flash Gordon
    0 x
    2559 Beiträge
    27 Hilfreiche Beiträge
    03. 03. 2014, 19:21

    Es wäre wichtig Dein Domainmodel zu kennen. Ich weiß z.B. nicht was Authorrelation ist. Da müsste ja der Author dranhängen...

    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!

  • Alissa Alissa
    T3PO
    0 x
    14 Beiträge
    0 Hilfreiche Beiträge
    04. 03. 2014, 08:43

    Hallo kitsunet,

    das was der extension builder gebaut hat, leer. also classes\domain\model\authorrelation.php ist bis auf die extends leer.

    der authorrelationcontroller beeinhaltet folgendes:

    1. /**
    2. * authorrelationRepository
    3. *
    4. * @var \TYPO3\Publisher\Domain\Repository\AuthorrelationRepository
    5. * @inject
    6. */
    7. protected $authorrelationRepository;
    8.  
    9. /**
    10. * action list
    11. *
    12. * @return void
    13. */
    14. public function listAction() {
    15. $authorrelations = $this->authorrelationRepository->findAll();
    16. $this->view->assign('authorrelations', $authorrelations);
    17. }
    18.  
    19. /**
    20. * action show
    21. *
    22. * @param \TYPO3\Publisher\Domain\Model\Authorrelation $authorrelation
    23. * @return void
    24. */
    25. public function showAction(\TYPO3\Publisher\Domain\Model\Authorrelation $authorrelation) {
    26. $this->view->assign('authorrelation', $authorrelation);
    27. }
    28.  
    29. /**
    30. * action new
    31. *
    32. * @param \TYPO3\Publisher\Domain\Model\Authorrelation $newAuthorrelation
    33. * @dontvalidate $newAuthorrelation
    34. * @return void
    35. */
    36. public function newAction(\TYPO3\Publisher\Domain\Model\Authorrelation $newAuthorrelation = NULL) {
    37. $this->view->assign('newAuthorrelation', $newAuthorrelation);
    38. }
    39.  
    40. /**
    41. * action create
    42. *
    43. * @param \TYPO3\Publisher\Domain\Model\Authorrelation $newAuthorrelation
    44. * @return void
    45. */
    46. public function createAction(\TYPO3\Publisher\Domain\Model\Authorrelation $newAuthorrelation) {
    47. $this->authorrelationRepository->add($newAuthorrelation);
    48. $this->flashMessageContainer->add('Your new Authorrelation was created.');
    49. $this->redirect('list');
    50. }

    und der blogcontroller:
    [code]/**
    * blogRepository
    *
    * @var \TYPO3\Publisher\Domain\Repository\BlogRepository
    * @inject
    */
    protected $blogRepository;

    /**
    * @var \TYPO3\Publisher\Domain\Repository\authorrelationRepository
    * @inject
    */
    protected $authorrelationRepository;

    /**
    * action list
    *
    * @return void
    */
    public function listAction() {
    $blogs = $this->blogRepository->findAll();
    $this->view->assign('blogs', $blogs);
    }

    /**
    * action show
    *
    * @param \TYPO3\Publisher\Domain\Model\Blog $blog
    * @return void
    */
    public function showAction(\TYPO3\Publisher\Domain\Model\Blog $blog) {
    $this->view->assign('blog', $blog);
    }

    /**
    * action new
    *
    * @param \TYPO3\Publisher\Domain\Model\Blog $newBlog
    * @dontvalidate $newBlog
    * @return void
    */
    public function newAction(\TYPO3\Publisher\Domain\Model\Blog $newBlog = NULL) {
    $this->view->assign('newBlog', $newBlog);
    }

    /**
    * action create
    *
    * @param \TYPO3\Publisher\Domain\Model\Blog $newBlog
    * @return void
    */
    public function createAction(\TYPO3\Publisher\Domain\Model\Blog $newBlog) {
    $this->blogRepository->add($newBlog);
    $this->flashMessageContainer->add('Your new Blog was created.');
    $this->redirect('list');
    }

    /**
    * action edit
    *
    * @param \TYPO3\Publisher\Domain\Model\Blog $blog
    * @return void
    */
    public function editAction(\TYPO3\Publisher\Domain\Model\Blog $blog) {
    $this->view->assign('blog', $blog);
    }

    /**
    * action update
    *
    * @param \TYPO3\Publisher\Domain\Model\Blog $blog
    * @return void
    */
    public function updateAction(\TYPO3\Publisher\Domain\Model\Blog $blog) {
    $this->blogRepository->update($blog);
    $this->flashMessageContainer->add('Your Blog was updated.');
    $this->redirect('list');
    }

    /**
    * action delete
    *
    * @param \TYPO3\Publisher\Domain\Model\Blog $blog
    * @return void
    */
    public function deleteAction(\TYPO3\Publisher\Domain\Model\Blog $blog) {
    $this->blogRepository->remove($blog);
    $this->flashMessageContainer->add('Your Blog was removed.');
    $this->redirect('list');
    }
    [/code]

    irgendwie habe ich den zusammenhang zwischen controller, model und repository noch nicht ganz raus oder bin einfach zu blind, denn wie gesagt, im backend funktioniert das genau so wie es soll.

  • Schweriner Schwerine...
    Jedi-Ratsmitglied
    0 x
    554 Beiträge
    60 Hilfreiche Beiträge
    04. 03. 2014, 09:14

    AutorRelationController finde ich macht für eine Relation wenig sind. Zumindest finde ich die Bezeichnung verwirrend, es handelt sich um ein Autoren, die einem Blog zugeordnet sind. Wie hast Du die Relation denn im Extension Builder gemacht? In dem Artikel Model fehlen ObjectStorages, was die Autoren sein sollten. Ich würde sagen Du machst die Relation nochmal ordentlich im Extension Builder und schaust Dir dann nochmal die Models an.

  • Alissa Alissa
    T3PO
    0 x
    14 Beiträge
    0 Hilfreiche Beiträge
    04. 03. 2014, 10:08

    wie das ganze im extension builder aussieht, habe ich mal dazugepackt als bild-anhang.

    edit: habe gerade eine neue extension geschrieben, anscheinend waren wirklich nur die relationen falsch gesetzt... jetzt funktioniert alles :S

    habt vielen dank für den tipp mit den relationen

    Anhänge (1)
    publisher_extbuil_1.png image/png 0,00 B 157 heruntergeladen
  • 1