---
title: "Fluid übergabe von Arguments"
url: "https://www.typo3.net/d/115370-fluid-uebergabe-von-arguments"
source: "typo3.net"
tags: ["Extensions","Extbase","Fluid","Frage","Kategorien"]
created: "2013-07-10"
last_reply: "2013-07-10"
replies: 9
solved: false
page: 1
pages: 1
lang: "de"
---

# Fluid übergabe von Arguments

Extensions › Extbase · 9 Antworten · gestartet 2013-07-10

## Eröffnungsbeitrag

**Halion** · 2013-07-10 · [Beitrag #1](https://www.typo3.net/d/115370-fluid-uebergabe-von-arguments/1)

Hallo Leute,

ich habe eine Frage zu einem Fluid Template:

ich bekomme Kategorien ausgegeben und würde diese gerne an einen weiteren view übergeben.

Allerdings bekomme ich diese nicht ausgelesen...

```html
<f:for each="{categories}" as="wert" key="key">
 	<li>{key} => {wert}</li>
</f:for>
<f:link.action action="view" arguments="{reference:reference, categories:categories}">
```

In der foreach bekomme ich die Werte ausgegeben, allerdings in der view versuche ich die categories auszulesen und bekomme keine Ausgabe..
Den Parameter reference bekomme ich per {reference} ausgelesen

Im Controller habe ich diese auch assigned mit:

```html
$this->view->assign('references', $references);
$this->view->assign('category', $category);
$this->view->assign('categories', $categories);
```

Wäre super wenn jemand einen Tip hat!

Gruß
Halion

## Antworten

### [#2](https://www.typo3.net/d/115370-fluid-uebergabe-von-arguments/2) · kainobi · 2013-07-10

Du kannst keine "Collection" (ich nehme mal an dass Deine "categories" entweder ein QueryResult oder ein ObjectStorage sind) als Link-Argument übergeben...

### [#3](https://www.typo3.net/d/115370-fluid-uebergabe-von-arguments/3) · Halion · 2013-07-10

Der link auf hat folgende Parameter im Frontend:

```html
&tx_references_reference[categories][0]=17&tx_references_reference[categories][1]=15&tx_references_reference[categories][2]=36&tx_references_reference[categories][3]=16
```

Das sieht doch schon so aus als ob die übergeben werden....

### [#4](https://www.typo3.net/d/115370-fluid-uebergabe-von-arguments/4) · kainobi · 2013-07-10

Dann scheitert es wohl am rekonstruieren der Objekte vor dem Action-Aufruf. Kannst Du mal den Code der Ziel-Action inkl. Annotations posten?

### [#5](https://www.typo3.net/d/115370-fluid-uebergabe-von-arguments/5) · Halion · 2013-07-10

Muss ich eigentlich im Controller als Parameter den übergebenen Parameter auch definieren?

Hier die action view:

```html
{namespace ext = Tx_ExtbaseComponents_ViewHelpers}
<f:if condition="{reference}">
	<ext:cache.tag object="{reference}" />
	<div id="slideshow-title" class="slideshow-privat">
	<h1>cat: {categories.3} </h1>
	<f:for each="{categories}" as="cat" key="i">
	<h1>cat: {cat} </h1>
	
	</f:for>
	{categories}
		<h1>{reference}</h1>
		<f:if condition="{category.uid} != never">
				<f:then>
					<h2>{category}</h2>
				</f:then>
		</f:if>
	</div>
</f:if>
```

### [#6](https://www.typo3.net/d/115370-fluid-uebergabe-von-arguments/6) · KarlKappe · 2013-07-10

Hi,

was kainobi meinte, war nicht das HTML-Template, sondern der PHP-Code in Deiner View-Action. Da musst Du nämlich die übergebenen Parameter entgegennehmen und wieder an das View übergeben.

VG Karl

### [#7](https://www.typo3.net/d/115370-fluid-uebergabe-von-arguments/7) · Halion · 2013-07-10

das ist die action aus dem Controller:
da habe ich den Parameter categories nicht drin...:

```html
	 * Render given reference
	 * @param Tx_References_Domain_Model_Reference $reference
	 * @return void
	 */
	public function viewAction(Tx_References_Domain_Model_Reference $reference, Tx_References_Domain_Model_Category $category=null) {
		$this->setPageTitle($reference->getMetaTitle());
		$this->setPageDescription($reference->getMetaDescription());
		
		
		
		
		$this->view->assign('reference', $reference);
		$this->view->assign('category', $category);
		$this->view->assign('categories', $categories);
	}
```

### [#8](https://www.typo3.net/d/115370-fluid-uebergabe-von-arguments/8) · Halion · 2013-07-10

und das die vorgelagerte indexview:

```html
public function indexAction(Tx_References_Domain_Model_Category $category=null) {
		if (!$category && $this->request->hasArgument('category')) {
			$category = $this->request->getArgument('category');
		}

		$submitted = $category ? true : false;
		if (!$category) {
			$category = $this->categoryRepository->findByUid(intval($this->settings['categories']['includeUidList']));
		}

		if ($category instanceof Tx_References_Domain_Model_Category) {
			$categories = $this->categoryRepository->findChildren($category);
			$references = $this->referenceRepository->withPagination($this, 'findByCategory', array($category));
			for ($i=0; $i<count($categories); $i++) {
				$categoryObj = $categories[$i];
				if ($categoryObj->getUid() === intval($this->settings['categories']['includeUidList'])) {
					unset($categories[$i]);
					break;
				}
			}

		} else {
			$categories = $this->categoryRepository->findAll();
			$references = $this->referenceRepository->withPagination($this, 'findAll');
		}

		if ($category instanceof Tx_References_Domain_Model_Category) {
			$this->setPageTitle($category->getMetaTitle());
			$this->setPageDescription($category->getMetaDescription());
		}

		$this->view->assign('references', $references);
		$this->view->assign('category', $category);
		$this->view->assign('categories', $categories);
		$this->view->assign('submitted', $submitted);
	}
```

### [#9](https://www.typo3.net/d/115370-fluid-uebergabe-von-arguments/9) · kainobi · 2013-07-10

Bei deiner viewAction sehe ich 3 Probleme:

1. Du übergibst in der URL "categories", aber in der Action deklarierst du "category"
2. Du übergibst eine Collection von Categories, aber in der Action definierst Du als Typ das Category-Model, was aber keine Collection sein kann
3. Du hast keine @param Annotation (weder für die $category, noch für $categories)

Allerdings weiss ich nicht, wie du das Action-Argument als Collection definieren kannst (habe ich so noch nie gemacht). Wenn Du Glück hast, geht es aber so:

```php
/**
 * Render given reference
 * @param Tx_References_Domain_Model_Reference $reference
 * @param Tx_Extbase_Persistence_ObjectStorage<Tx_References_Domain_Model_Category> $categories
 * @return void
 */
public function viewAction(Tx_References_Domain_Model_Reference $reference, Tx_Extbase_Persistence_ObjectStorage $categories=null) { ... }
```

### [#10](https://www.typo3.net/d/115370-fluid-uebergabe-von-arguments/10) · Halion · 2013-07-10

Danke für deine Hilfe, allerdings bekomme ich dann die folgende Exception:

#1231178878: Given property name is not of type string.

arrghhhh...:(

---

Quelle: „Fluid übergabe von Arguments“, typo3.net, https://www.typo3.net/d/115370-fluid-uebergabe-von-arguments
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
