[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