---
title: "Templates und Controller richtig nutzen, aber wie?"
url: "https://www.typo3.net/d/119964-templates-und-controller-richtig-nutzen-aber-wie"
source: "typo3.net"
tags: ["Extensions","Extbase","Frage","Kategorien","TYPO3 6.x"]
created: "2015-03-25"
last_reply: "2015-03-26"
replies: 1
solved: false
page: 1
pages: 1
lang: "de"
---

# Templates und Controller richtig nutzen, aber wie?

Extensions › Extbase · 1 Antwort · gestartet 2015-03-25

## Eröffnungsbeitrag

**sKylo** · 2015-03-25 · [Beitrag #1](https://www.typo3.net/d/119964-templates-und-controller-richtig-nutzen-aber-wie/1)

Hallo werte Programmierer,

ich habe folgendes Problem. Meine Seite braucht noch eine Ausgabe einer selbstgeschriebenen Extension (mit ExtBuilder und etwas tt_news Hooks) von Kategorien. Ich habe 2 Entities in meinem Domain-Model: Fahrzeug und FzKategorie , die Relation ist N-1 . Nun hab ich ein zweites Plugin erstellt und dem die Standardaktion ListByCategory gegeben. Nun wundere ich mich nur, wie ich nun meinem Plugin sagen soll, WELCHE Kategorie erst ausgibt, oder erstmal wie FIlter ich in einem Controller meine Ergebnisse. Wie immer finde ich die Google Hilfe und Tutorials äusserst dürftig, deswegen wäre ich für jede Hilfe dankbar.

```html
<f:layout name="Default" />

This Template is responsible for creating a table of domain objects.

If you modify this template, do not forget to change the overwrite settings
in /Configuration/ExtensionBuilder/settings.yaml:
  Resources:
    Private:
      Templates:
        ListByCategory.html: keep

Otherwise your changes will be overwritten the next time you save the extension in the extension builder

<f:section name="main">
<h1>Alle Fahrzeuge Category</h1>

<f:flashMessages renderMode="div" />

<table  class="tx_y7fahrzeugdatenbank" >
	<tr>
		<th><f:translate key="tx_y7fahrzeugdatenbank_domain_model_fahrzeug.name" /></th>
		<th><f:translate key="tx_y7fahrzeugdatenbank_domain_model_fahrzeug.beschreibung" /></th>
		<th><f:translate key="tx_y7fahrzeugdatenbank_domain_model_fahrzeug.bild" /></th>
		<th><f:translate key="tx_y7fahrzeugdatenbank_domain_model_fahrzeug.datenblatt" /></th>

	</tr>

	<f:for each="{vehicles}" as="fahrzeug">
	<f:if condition="{category}=={fahrzeug.category}">
		<tr>
			<td><f:link.action action="show" arguments="{fahrzeug : fahrzeug}"> {fahrzeug.name}</f:link.action></td>
			<td><f:link.action action="show" arguments="{fahrzeug : fahrzeug}"> {fahrzeug.beschreibung}</f:link.action></td>
			<td><f:image src="{fahrzeug.bild.originalResource.originalFile.uid}" alt="{fahrzeug.beschreibung}" width="300"/></td>
			<td><f:link.action action="show" arguments="{fahrzeug : fahrzeug}"> {fahrzeug.datenblatt.originalResource.name}</f:link.action></td>
		</tr>
	</f:if>
	</f:for>
</table>

</f:section>
```

<https://gist.github.com/Skyl0/7c8288de5c6feff4b4dd>

```php
<?php
namespace Y7group\Y7Fahrzeugdatenbank\Controller;

/**
 * FahrzeugController
 */
class FahrzeugController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {

	/**
	 * fahrzeugRepository
	 *
	 * @var \Y7group\Y7Fahrzeugdatenbank\Domain\Repository\FahrzeugRepository
	 * @inject
	 */
	protected $fahrzeugRepository = NULL;

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

	/**
	 * action show
	 *
	 * @param \Y7group\Y7Fahrzeugdatenbank\Domain\Model\Fahrzeug $fahrzeug
	 * @return void
	 */
	public function showAction(\Y7group\Y7Fahrzeugdatenbank\Domain\Model\Fahrzeug $fahrzeug) {
		$this->view->assign('fahrzeug', $fahrzeug);
	}

	/**
	 * action listByCategory
	 * 
	 * @return void
	 */
	public function listByCategoryAction(){//\Y7group\Y7Fahrzeugdatenbank\Domain\Model\FzKategorie $cat) {
		$vehicles = $this->fahrzeugRepository->findAll(); // get all vehicles
		// debug($vehicles, '('.__CLASS__.'::'.__FUNCTION__.')', __LINE__, __FILE__, 3); // TODO DELETE
		$this->view->assign('category', 1); // here assign another variable like $cat.
		$this->view->assign('vehicles', $vehicles); // hand over the query results
	}

}
```

<https://gist.github.com/Skyl0/afd10ed54b620e48724d>

Alternativ hatte ich überlegt ein Plugin und ein Repository für die Kategorien angelegt, aber in Anbetracht der N-1 beziehung finde ich das übertrieben einen Kategorie Controller noch einzuführen.

## Antworten

### [#2](https://www.typo3.net/d/119964-templates-und-controller-richtig-nutzen-aber-wie/2) · Unbekannter Benutzer · 2015-03-26

$vehicles = $this->fahrzeugRepository->findByCategory($cat) sollte dir weiterhelfen.

---

Quelle: „Templates und Controller richtig nutzen, aber wie?“, typo3.net, https://www.typo3.net/d/119964-templates-und-controller-richtig-nutzen-aber-wie
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
