[TYPO3-german] Extbase/Fluid - Separate Ausgabe von Relationen in der Listendarstellung

Norman Sand norman.sand at googlemail.com
Sun May 12 02:20:35 CEST 2013


Hallo Dirk,

das ist ein guter Hinweis. Ja, die Kategorien und die Customers haben 
jeweils ein Repository. Ich habe nun folgendes versucht (zunächst nur 
mit den Customers):


------------------------
class ProjectsController extends 
\TYPO3\CMS\Extbase\Mvc\Controller\ActionController {

     /**
      * projectsRepository
      *
      * @var \TYPO3\yhproject\Domain\Repository\ProjectsRepository
      * @inject
      */
     protected $projectsRepository;
     protected $customersRepository;

     /*
     * @param Tx_Yhproject_Domain_Repository_customersRepository 
$customersRepository
     * @return void
     */
     public function 
injectCustomersRepository(Tx_Yhproject_Domain_Repository_customersRepository 
$customersRepository) {
         $this->customersRepository = $customersRepository;
     }


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

}

------------------------

Ich habe viele Hinweise gelesen, dass es so gehen müsste, aber irgendwie 
mache ich doch etwas falsch.
Ich bekomme in der letzten Zeile den Fehler:
PHP Fatal error:  Call to a member function findAll() on a non-object in 
ProjectsController.php on line 65

In meiner CustomersRepository.php steht folgendes, falls das relevant ist:

------------------------
class CustomersRepository extends 
\TYPO3\CMS\Extbase\Persistence\Repository {

}
------------------------

Hast du vielleicht noch einen Hinweis, was ich falsch mache?

(Nächstes Mal werde ich meine Anfrage in die korrekte Gruppe posten! 
Danke für den Hinweis dazu!!)


Viele Grüße
Norman

> Dirk Wenzel <mailto:wenzel at webfox03.de>
> 11. Mai 2013 20:47
> Hi Norman,
>
>
> Hast Du ein Repository?
> $categories = $this->categoriesRepository->findAll();
> $this->view->assign('categories', $categories);
> Es gibt auch view->assignMultiple(...) Siehe API
>
> BTW: Du solltest solche Fragen eher in der dev-Liste stellen (englisch)
>
> Dirk
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
> Norman Sand <mailto:norman.sand at googlemail.com>
> 11. Mai 2013 18:56
> Hallo zusammen,
>
> ich habe eine sehr einfache Erweiterung auf Extbase/Fluid gebaut und 
> habe das Ziel, eine Listenansicht zu generieren, die wie üblich die 
> Items enthält, aber auch eine Dropbox über der eigentlichen Liste mit 
> allen verhandenen Kategorien, jedoch weiß ich nicht, wie ich es 
> anstelle, dass die Kategorien separat ausgegeben werden.
>
> Dies ist mein Model mit zwei Relationen:
>
> http://dl.dropbox.com/u/684256/ext01.png
>
> Das funktioniert auch soweit sehr schön:
>
> http://dl.dropbox.com/u/684256/ext02.png
>
> Ich kann die Relationen den Objekten hinzufügen und im Backend pflegen 
> wie es sein sollte.
>
> Nun möchte ich eine Listenansicht der Objekte erhalten, was soweit 
> auch funktioniert. Ich spreche über
>
>
> ---------------------
> public function listAction() {
>         $projectss = $this->projectsRepository->findAll();
>         $this->view->assign('projectss', $projectss);
>     }
> ---------------------
>
>
> eine Listview mit folgendem Template an (vereinfacht):
>
>
> ---------------------
> <f:for each="{projectss}" as="projects"  iteration="objIterator">
>
>             {projects.title}
>
> <ul>
>
> <f:for each="{projects.customers}" as="a">
> <li>{a.title}</li>
> </f:for>
>
> </ul>
> </f:for>
> ---------------------
>
> Hier erhalte ich erfolgreich eine Ausgabe mit den Projekten und den 
> jeweils dazugehörigen Kategorien.
>
> Mein Ziel ist es jedoch, darüber hinaus quasi über der Listenansicht 
> eine Liste mit allen verfügbaren Kategorien zu erhalten. Also quasi 
> sowas:
>
> ---------------------
> <ul>
> <f:for each="{customerss}" as="customers">
>
> <li>{customers.title}</li>
>
> </f:for>
> </ul>
>
>
>
> <f:for each="{projectss}" as="projects">
>
>             {projects.title}
>
> <ul>
>
> <f:for each="{projects.customers}" as="a">
> <li>{a.title}</li>
> </f:for>
>
> </ul>
> </f:for>
> ---------------------
>
>
> Nur geht das natürlich nicht, weil der Aufruf der View die 
> entsprechenden Datensätze so nicht beinhaltet, sondern nur die 
> projects. Ich vermute, dass das eigentlich eine einfach Anforderung 
> ist, aber im Moment sehe ich wohl den Wald vor lauter Bäumen nicht. 
> Wie gehe ich in einem solchen Fall vor? (Es sind wie im ersten Link 
> oben zu sehen zwei Relationen, die beide hier abgebildet werden sollten.)
>
> Ich bin für jede Idee oder Lösungsansatz dankbar!
>
> Viele Grüße
> Norman
>
>
>
> _______________________________________________
> 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